【发布时间】:2021-12-29 12:37:23
【问题描述】:
我正在尝试编写代码来重命名文件。基本上我想添加“fluid_mask”,
这是我到目前为止写的内容
import os
import shutil
from tqdm import tqdm
src= r"C:\Users\cetinh\Desktop\New folder (7)"
dest = r"C:\Users\cetinh\Desktop\New folder (8)"
for filename in tqdm(os.listdir(src), position=0, leave=True, dynamic_ncols=True, desc="Total"):
file_path = os.path.join(src, filename)
a = os.path.join(src, filename.replace(filename[-9], "_fluid_mask_"))
if os.path.isfile(os.path.join(dest, os.path.basename(a))) ==1:
pass
tqdm.write("Skipping " + filename)
else:
os.rename(file_path, a)
shutil.move(a, dest)
tqdm.write("Copying " + filename + "-----> " + os.path.basename(a))
这就是我得到的
Copying 840624002_OS_V9_20170310_0102.png -----> 840624002_fluid_mask_OS_fluid_mask_V9_fluid_mask_20170310_fluid_mask_0102.png
据我所知,只需将“_”替换为“fluid_mask”,但我只需替换文件名中的最后一个下划线。
谁能告诉我如何解决这个问题?
谢谢
【问题讨论】:
-
使用带有
re.sub()的正则表达式而不是str.replace() -
或者用
str.split('_')分割文件名,在最后一个元素之前插入fluid_mask,然后将它重新组合在一起。
标签: python python-3.x operating-system file-rename shutil