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,"")