识别其中存在特定字符的文件并重命名该文件

identify a file with specific chars present in it and rename the file

我正在尝试使用以下脚本查找并重命名以下文件

IYBR2C.YGPSWS.SL.1.M.20190503170641.csv to SAK_BB_AL.csv
QWEJ1P.YGPSWS.SL.1.M.20190508122932.csv to SAM_SG_MO.csv
SCPR1C.YGPSWS.SL.1.T.20190503164120.csv to SVM_SG_AL.csv
SMCE2P.SGPAWS.SL.1.T.20190508123138.csv to SDM_SG_MO.csv

这是我对单个文件的尝试:

但是我的问题是我需要在这个重命名上有一些条件

ex-:
IYBR2C.YGPSWS.SL.1.M.20190503170641.csv to SAK_BB_AL.csv

对于这个示例文件,我需要检查它是否以 "IYBR2C" 开头并且包含 "M" 如果满足这两个条件则将其重命名为 SAK_BB_AL.csv

for root, dirs, files in os.walk(/tmp):
for dir in dirs:
    if dir.startswith("IYBR2C"):
        org_fp = os.path.join(root, dir)
        new_fp = os.path.join(root, dir[1])
        os.rename(org_fp, new_fp)

我尝试的结果没有像预期的那样找到文件并重命名以 ("IYBR2C") 开头的文件以及如何检查它是否也包含字母 ("M") .

注意:文件存在于我的 /tmp 目录中,我不知道其中有多少文件我提供了一个示例,说明如何为 IYBR2C.YGPSWS.SL.1.M.20190503170641.csv 实现它,请提供一个通用的解决方案: -)

这应该让你继续。您基本上在 if 语句中需要两个条件,检查第一个单词并搜索名称中的字符。这是一个模型。告诉我好不好。

filenames=['IYBR2C.YGPSWS.SL.1.M.20190503170641.csv',
'QWEJ1P.YGPSWS.SL.1.M.20190508122932.csv',
'SCPR1C.YGPSWS.SL.1.T.20190503164120.csv',
'SMCE2P.SGPAWS.SL.1.T.20190508123138.csv']
for newname in filenames:
         if(newname.split('.')[0]=='IYBR2C' and "M" in newname):
                print newname,'SAK_BB_AL.csv'

结果:

IYBR2C.YGPSWS.SL.1.M.20190503170641.csv SAK_BB_AL.csv