2012-10-26 159 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