我有一个简单的脚本,该脚本遍历目录并重命名文件。
Junk.Old.txt> NEW_FILE_DATE_TIME_Junk.txt
如果文件匹配,则可以正常工作。
我遇到的问题是,如果文件已被重命名,并且我有一个要重命名的新文件,则会出现错误。因此,如果我有两个采用新格式的文件,并且要重命名一个文件,它将失败并显示以下内容,而不会重命名旧文件。
Traceback (most recent call last):
File "./rename.py", line 17, in <module>
f_job, f_ext = f_name.split('.print')
ValueError: not enough values to unpack (expected 2, got 1)
显然,它会看到已经重命名的文件并退出。那么,我需要什么来检查文件格式是否已经存在,请跳至下一个,直到所有文件都被重命名?
#!/bin/python3
import os
os.chdir('/my/folder/')
for f in os.listdir():
f_name, file_ext = os.path.splitext(f)
f_job, f_ext = f_name.split('.Old')
f_attrib1 = "NEW"
f_attrib2 = "FILE"
import time
new_name = '{}_{}_{}_{}_{}{}'.format(f_attrib1, f_attrib2, time.strftime("%Y%m%d"), time.strftime("%H%M%S"), f_job, file_ext)
os.rename(f, new_name)
答案 0 :(得分:1)
如果您只想忽略其中没有“ .Old”的文件,则可以在拆分上方添加以下内容:
if '.Old' not in f_name:
continue