如果文件名存在,则跳至For语句中的下一个

时间:2019-05-10 21:36:13

标签: python-3.x

我有一个简单的脚本,该脚本遍历目录并重命名文件。

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)

1 个答案:

答案 0 :(得分:1)

如果您只想忽略其中没有“ .Old”的文件,则可以在拆分上方添加以下内容:

if '.Old' not in f_name:
    continue