繁体   English   中英

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 (它是当前文件夹中每个文件列表)转换为字符串,然后在该列表上执行替换操作。 我假设您打算做的是在每个文件名字符串中替换那些特殊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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM