【发布时间】:2015-03-13 15:01:05
【问题描述】:
我有一个工作代码,它采用一个 csv 文件目录并对每一行的一列进行哈希处理,然后将所有文件聚合在一起。问题是输出只显示第一个哈希值,而不是为每一行重新运行哈希。代码如下:
import glob
import hashlib
files = glob.glob( '*.csv' )
output="combined.csv"
with open(output, 'w' ) as result:
for thefile in files:
f = open(thefile)
m = f.readlines()
for line in m[1:]:
fields = line.split()
hash_object = hashlib.md5(b'(fields[2])')
newline = fields[0],fields[1],hash_object.hexdigest(),fields[3]
joined_line = ','.join(newline)
result.write(joined_line+ '\n')
f.close()
【问题讨论】:
-
为什么这样:
hash_object = hashlib.md5(b'(fields[2])'),这应该是这样的:hash_object = hashlib.md5(fields[2]),但转换为二进制格式,否则你只有常量字符串'fields[2]'