Python (文件名 + Sha1) 生成器
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
,这是一个 list 每个人 file 的潜在问题在当前文件夹中,转换为一个字符串,然后对该列表执行替换。我假设您打算做的是在每个文件名 string 中替换那些特殊的 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,"")
我的算法有问题,显然它在执行时跳过了很多 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
,这是一个 list 每个人 file 的潜在问题在当前文件夹中,转换为一个字符串,然后对该列表执行替换。我假设您打算做的是在每个文件名 string 中替换那些特殊的 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,"")