2012-10-26 190 views
-1

我有一個CSV以下格式文件:解析CSV文件(Python)的

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

基本上我正在尋找在Python 2.x到做的是閱讀文件名列中的文件,如果,任何文件都以列表中指定的文件擴展名存在,MD5哈希列中的數據將被解析爲文本文檔。

所以我的僞代碼看起來像這樣:

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* 

我只是不知道如何提取MD5哈希值。

有什麼建議嗎?

+5

你能告訴我們你的真實* *代碼,而不是你的*僞代碼*? – mgilson

+4

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

+0

這是我最後一行 – thefragileomen

回答

0

爲MD5-Hash創建一個列表,併爲文件名創建一個列表,如果該列表位於文件名列表的項目中,則保存索引並將其用於MD5列表(因爲您有一張索引表已經是確定的相同)

+0

所以也許將文件分成兩部分,一部分包含文件名,另一部分包含MD5,然後將兩部分分別放入相應的列表中,如果文件名[200]包含.doc,則將md5 [200]複製到新的txt文件中? – thefragileomen

+0

是的,我認爲這將是一個可能的解決方案。您還可以使用保存的索引的其他信息(SHA-1,...)! – moritzg

0

解決方案: -

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

下次請格式化您的代碼('{}'圖標)。 – Bruno