определить файл с конкретными символами, присутствующими в нем, и переименовать файл - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь найти и переименовать файлы ниже, используя скрипт ниже

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, пожалуйста, предоставьте общее решение :-)

1 Ответ

0 голосов
/ 08 мая 2019

Это должно помочь вам. вам в основном нужны два условия в операторе 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...