识别其中存在特定字符的文件并重命名该文件
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
我正在尝试使用以下脚本查找并重命名以下文件
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