我怎样才能把这个文件名整理干净?

2024-10-03 00:17:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道有更好的办法,但我不知道是什么。我正在整理一个文件列表,我想删除“通常的嫌疑犯”,这样我就可以将一个列表与另一个列表进行比较。你知道吗

据我所知,名称.替换()查看列表中的每一项以查找我选择的短语,如果存在则替换它们。一定有更好的办法。。。你知道吗

def cleanLists(listToClean, extList):
    cleanFileList = []
    for filename in listToClean:
        name = os.path.split(filename)[1]
        ext = os.path.splitext(name)
        if ext[1] in extList:
            name = name.replace(ext[1], '') 
            name = name.replace('1080p', '')
            name = name.replace('1080P', '')
            name = name.replace('720p', '')
            name = name.replace('720P', '')
            name = name.replace('HD', '')
            name = name.replace('(', ' ')
            name = name.replace(')', '')
            name = name.replace('.', ' ')
            cleanFileList.append(name)
    cleanFileList.sort(key=lambda x: x.lower())
    return cleanFileList

Tags: 文件pathnamein列表osfilenameext
2条回答
bad_names = ['1080p', '720p'] # and so on
for bad_name in bad_names:
    name = name.replace(bad_name, '')

显然,要从每个名称中清除的单词的声明将发生在函数的顶部,而不是文件名列表上的每次迭代。你知道吗

# do this once
import re
bad_strings = ['1080p', '720p'] # etc
regex = '|'.join(re.escape(x) for x in bad_strings)
subber = re.compile(regex, re.IGNORECASE).sub

# do this once for each name
name = name.replace(ext[1], '')
# OR maybe better: name = ext[0] # see below
cleanFileList.append(subber('', name))

考虑一下“csv”在扩展名列表中的位置,您有一个名为“summary\u of \u csv”的文件_文件.csv' ... 你知道吗

相关问题 更多 >