首页 > 解决方案 > 带有 if 语句的 Python 文件重命名器

问题描述

我有一个充满 .xlsx 文件的文件夹,这些文件被命名为特定文件格式,例如 FW2014516 MS1 T3 - GHD.xlsx,但是,有些文件具有这种格式 FW2014516 MS1 - GHD.xlsx 我希望能够遍历整个文件文件夹并将每个文件重命名为新格式,例如 FW2014516_MS1_T3_GHD,如果“T3”值存在(如果实际上可能不是 T3,则可能是 WT3)。

任何帮助表示赞赏。

这是我到目前为止所拥有的。

import os
import re


os.chdir(r"C:\folder where data is")
# print(os.getcwd())

for f in os.listdir():
    file_name, file_ext = (os.path.splitext(f))
    
    file_name = file_name.strip()
    print(file_name)
    # # print(file_name.split(''))
    print(re.split(r'[\s|-]\s*', file_name))
    f_name1, f_name2, f_fname3, f_name4, f_name5 = re.split(r'[\s|-]\s*', file_name)
#Need some type of if statement needed here?
new_name = '{}_{}_{}_{}{}'.format(f_name1, f_name2, f_name3, f_name4, file_ext)
os.rename(f, new_name)

标签: python

解决方案


试试这个

import os
import re


os.chdir(r"C:\folder where data is")
# print(os.getcwd())

for f in os.listdir():
    file_name, file_ext = (os.path.splitext(f))
    
    file_name = file_name.strip()
    print(file_name)
    # # print(file_name.split(''))
    if (' T3-' in file_name) or (' WT3-' in file_name):
        new_name = re.sub('[- ]+', '_', file_name) + file_ext
        os.rename(f, new_name)
        print(f'Renamed {f} to {new_name}.')

推荐阅读