-1
votes

Besoin d'un script shell / python pour cette logique

J'essaie de rassembler une coquille / python hack pour la logique suivante:

  1. J'ai un fichier avec une liste d'IMEI à 14-15 chiffres longue.

    ex: - XXX

  2. Je dois examiner les 8 premiers chiffres de chacune des lignes ci-dessus dans le fichier et les catégoriser en tant que modèle.

    Par exemple: -

    123456872932343 -> Les 8 premiers chiffres 12345687 indiqueront un modèle donné - disent "Model-X"

  3. J'ai besoin de itérer via cette liste pour analyser les 8 premiers chiffres, la classer comme modèle, puis si les 8 chiffres se répètent dans la liste, le nombre de modèle doit être augmenté.

    Quelqu'un peut-il aider à cet égard.


3 commentaires

Qu'est-ce que tu as essayé jusque-là?


Il ressemble à un travail pour SED (pour collecter les 8 premiers chiffres) et Trier (Pour replacer les répétitions ensemble) et UNIQ -C pour compter le nombre de répétitions pour chaque modèle. Quel est le problème?


Elon, est-ce que vous à nouveau, ou est-ce que c'est juste moi à la pensée Tesla. : 3


3 Réponses :


2
votes

Le code suivant fonctionnera-t-il pour vous?

#!/bin/python
dict_model = {  'model-X': '12345687',
                'model-Y': '98765432'}
count_model = {  'model-X': 0,
                'model-Y': 0}
imei_list = ['123456872932343', '123456876846461', '123456876846462', '987654326846461', '987654326846462']

for x in imei_list:
    for model in dict_model:
        if dict_model[model] == x[0:8]:
            count_model[model]+=1

print(count_model)


1 commentaires

Merci pour la réponse rapide M. Vinu. J'ai essayé une approche similaire. J'ai réalisé que le problème est que le dictionnaire contenant le mappage IMEI au numéro de modèle n'est pas exhaustif et j'ai donc fini par avoir beaucoup de mappages IMEI à un modèle inconnu. Le pépin est de mon côté. Merci pour le code.



0
votes

Vous pouvez les compter dans un dict à vérifier les 8 premiers chiffres: xxx

sortie: xxx


1 commentaires

Merci, l'une des questions que j'avais était dans la conversion de l'IMEI dans le fabricant correspondant. La page wiki pour imei tac ( en.wikipedia.org/wiki/type_allocation_code ) ne donne pas Une liste exhaustive de la cartographie du TAC à l'opérateur et celle-ci où beaucoup de ma marquage se déroulait dans un seau inconnu.



0
votes

Essayez ce pseudocode:

imei_count = {k:len(imei_dict[k]) for k in imei_dict }


0 commentaires