gpt4 book ai didi

python - 如何在“扩展”中包含 "part#+.rar"

转载 作者:行者123 更新时间:2023-12-01 06:02:16 27 4
gpt4 key购买 nike

因此,我使用脚本将文件名拆分为“名称”和“扩展名”,这样我就可以应用一堆规则并使用“名称”,并让脚本在最后将所有内容重新组合在一起.

目前,我正在使用:

import os, shutil, re
def rename_file (original_filename):
name, extension = os.path.splitext(original_filename)
name = re.sub(r"\'", r"", name) # etc...more of these...
new_filename = name + extension
try:
# moves files or directories (recursively)
shutil.move(original_filename, new_filename)
except shutil.Error:
print ("Couldn't rename file %(original_filename)s!" % locals())
[rename_file(f) for f in os.listdir('.') if not f.startswith('.')]

我的问题是 os.path.splitext() 包含“.partX.rar”的“.part(s)”作为文件名的一部分,而我希望它包含作为文件名的一部分文件扩展名。

如何让脚本执行此操作(没有“扩展名”列表或 rar 文件的完全独立的脚本)?

谢谢!

最佳答案

os.path.splitext 对“.”进行反向搜索并返回它找到的第一个匹配项。所以开箱即用的 splitext 不会满足您的需要。如果您只是使用它来标记文件名,我建议您通过拆分来自己解析文件名。以左侧为名称,然后重新加入右侧。

这是一种方法:

def split_name(file_name):
'''
Returns root_filename, 'middle tokens', and extension
'''
tokens = file_name.split('.')

return (tokens[0], ".".join(tokens[1:-1]), tokens[-1]) if len(tokens) >1 else file_name
<小时/>
file_name = 'this.is.a.txt'
split_name(file_name)
#result is:
>>>  ('this', 'is.a', 'txt')

关于python - 如何在“扩展”中包含 "part#+.rar",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9770673/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com