[英]Python (Filename + Sha1) generator
我的算法有问题,显然它在执行时会跳过很多sha1 hashes
。
文件名没有问题,但是我有以下输出问题:
filename
+ sha1
\\ n
对于他们每个人。 我可以以某种方式猜测它是由于os.walk造成的,但不是那个专业的ATM。
txt = open('list','w')
for dirpath, dirnames, filenames in os.walk(dir_path):
text = str(filenames)
for tag in ("[", "]", " ","'"):
text = text.replace(tag, '')
text = str(text.replace(',','\n'))
for i in filenames:
m = hashlib.sha1(str(text).encode('utf-8')).hexdigest()
txt.write(text+" "+str(m)+"\n")
txt = txt.close()
谢谢
更改:
txt = open('list','w')
至:
txt = open('list','a')
您正在使用“ w”覆盖以前的所有内容。 您需要“ a”,它会追加到现有文件中而不会被覆盖。
看起来潜在的问题是,您正在将filenames
(它是当前文件夹中每个文件的列表)转换为字符串,然后在该列表上执行替换操作。 我假设您打算做的是在每个文件名字符串中替换那些特殊tags
。 请尝试以下。
txt = open('list','w')
for dirpath, dirnames, filenames in os.walk(dir_path):
for text in filenames:
text = re.sub('[\[\]," "]',"",text)
m = hashlib.sha1(str(text).encode('utf-8')).hexdigest()
txt.write(text+" "+str(m)+"\n")
txt = txt.close()
根据要求,如果您不想使用re
,则只需执行您最初的操作即可:
text = 'fjkla[] k,, a,[,]dd,]'
for badchar in '[]," "]':
text = text.replace(badchar,"")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.