2012-10-26 3 views
-1

Je dispose d'un fichier CSV avec le format suivant:CSV fichier Parsing (Python)

"SHA-1","MD5","CRC32","FileName","FileSize","ProductCode","OpSystemCode" 

Fondamentalement, ce que je cherche à faire en Python 2.x est lu le fichier et si, dans la colonne de nom de fichier, tous les fichiers existent avec une extension de fichier spécifiée dans une liste, les données de la colonne de hachage MD5 sont analysées dans un document texte.

donc mon code pseudo est à la recherche comme ceci:

list = [.doc,.xls,.ppt] 

with open(new.csv) as new_f: 
    with open(x.csv) as old_f: 
     x = f.readlines() 
     if list in x: 
      # *copy out the value from the MD5 value column to new.csv* 

Je ne sais pas comment extraire le hachage MD5.

Des suggestions?

+5

Pouvez-vous nous montrer votre * Code réel * au lieu de votre pseudo * code *? – mgilson

+4

[Le module 'csv'] (http://docs.python.org/library/csv.html) –

+0

C'était mon vrai code autre que la dernière ligne – thefragileomen

Répondre

0

Créer une liste pour le MD5-Hash et une pour le nom de fichier, si la liste est dans l'élément de la liste des noms, enregistrer l'index et l'utiliser pour votre liste MD5 (puisque vous avez une table l'index doit être le même)

+0

Alors peut-être diviser le fichier en deux, l'un contenant des noms de fichiers et un contenant MD5 et ensuite apporter les deux dans les listes respectives et si filename [200] contient .doc par exemple, alors copier md5 [200] dans un nouveau fichier txt? – thefragileomen

+0

Oui, je pense que ce serait une solution possible pour vous. Vous pouvez également utiliser les autres informations (SHA-1, ...) avec l'index enregistré! – moritzg

0

solution identifiée: -

import csv 

results = [] 
filetypes = ['jpg','bmp','jpeg','mov','mp4','avi','wmv','wav','tif','gif','png'] 
reader = csv.reader(open('c:\users\me\Desktop\x.csv')) 
for extension in filetypes: 
    for line in reader: # iterate over the lines in the csv 
     if extension in line[3]: 
      print line[1] + "\t" + line[3] 
+0

Veuillez formater votre code la prochaine fois (l'icône '{}'). – Bruno