作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,我使用脚本将文件名拆分为“名称”和“扩展名”,这样我就可以应用一堆规则并使用“名称”,并让脚本在最后将所有内容重新组合在一起.
目前,我正在使用:
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/
我是一名优秀的程序员,十分优秀!