我正在尝试从文件名中删除数字。但是这样做也会删除扩展名,mp4
文件变成mp
。有什么好的解决方案来解决这个问题?
import os
def file_rename():
name_list=os.listdir(r"C:\Users\caspe\OneDrive\Documents\Övrigt\Kodning\Twitch")
print(name_list)
saved_path=os.getcwd()
print("Current working directory is"+saved_path)
os.chdir(r"C:\Users\caspe\OneDrive\Documents\Övrigt\Kodning\Twitch")
for file_name in name_list:
print("old name"+file_name)
print("new name"+file_name.strip("0123456789"))
os.rename(file_name, file_name.translate(str.maketrans('','','0123456789-')))
os.chdir(saved_path)
file_rename()
您可以使用pathlib.Path对象。它具有name
和suffix
属性,以及一个重命名方法:
import re
from pathlib import Path
for file in Path(r'C:\tmp').glob('*'):
if not file.is_file():
continue
new_name = re.sub('\d','', file.stem) + file.suffix
file.rename(file.parent/new_name)
该parent
属性提供文件所属的文件夹,该is_file
方法用于检查我们是否正在处理常规文件(而不是文件夹)。使用/
操作员可以轻松创建新的路径对象(完整的新文件路径为file.parent / new_name
)。
所述re.sub()
用于替换的数字(\d
在旧文件名手段一个数字)stem
的一部分。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句