Python сравнить имя файла с именем папки - PullRequest
0 голосов
/ 20 февраля 2020

Я просто запускаю python, и мне нужно сравнить имя файла с именем папки, чтобы запустить хороший sh скрипт. (Я использую воздушный поток)

import glob
import os
import shutil
from os import path

odsPath = '/apps/data/02_ODS/'
receiptPath = '/apps/data/80_DATA/01_Receipt/'


for files in os.listdir(receiptPath):
    if(files.startswith('MEM_ZMII') or files.startswith('FMS') and files.endswith('.csv')):
        parsedFiles = files.split('_')
        pattern = '_'.join(parsedFiles[0:2])
        fileName = '_'.join(parsedFiles[2:5])
        fileName = fileName.split('-')[0].lower()
        # print('appCode: ', pattern)
        # print('fileName: ', fileName)


for odsFolder in os.listdir(odsPath):
    if(odsFolder == fileName):
        print('it exist: ', str(fileName))
    else:
        print('it\'s not')

Я получил 3 файла в receivePath, он соответствует только одному файлу, но не другим. Кто-нибудь может мне помочь?

Спасибо большое!

1 Ответ

1 голос
/ 20 февраля 2020

Хорошо, ваша проблема в том, что вы перезаписываете свою переменную fileName, поэтому в конце первого значения для l oop сохраняется только последнее значение, равное material_makt. Решение состоит в сохранении всех имен файлов в списке fileNames_list, а затем вы можете проверить if (odsFolder in fileNames_list):

import glob
import os
import shutil
from os import path

odsPath = '/apps/data/02_ODS/'
receiptPath = '/apps/data/80_DATA/01_Receipt/'


fileNames_list = []
for files in os.listdir(receiptPath):
    if(files.startswith('MEM_ZMII') or files.startswith('FMS') and files.endswith('.csv')):
        parsedFiles = files.split('_')
        pattern = '_'.join(parsedFiles[0:2])
        fileName = '_'.join(parsedFiles[2:5])
        fileName = fileName.split('-')[0].lower()
        fileNames_list.append(fileName)

for odsFolder in os.listdir(odsPath):
    if (odsFolder in fileNames_list):
        print('it exist:', str(odsFolder))
    else:
        print('it\'s not')

Вывод:

it exist: zcormm_familymc
it exist: kpi_obj_data
it exist: material_makt
...