Как объединить два файла из разных папок на основе совпадения нескольких символов в имени файла - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть две папки с текстовыми файлами, я хочу прочитать файлы из первой папки и проверить во второй папке, совпадает ли какой-либо символ specfi c в имени файла, затем объединить в столбце «Время», сделать это для нескольких файлов

folder 1:
  07k0ms_610s_hh85m_sq150_t40k0_sn183_0
  08k0ms_610s_hh85m_sq150_t40k0_sn183_20
  011k0ms_610s_hh85m_sq150_t40k0_sn183_-10
folder 2:
   07k0m_t40k0_try-0.2
   08k0m_t40k0_try-0.2
   32k0m_t40k0_try-0.2

read file from folder 1 and check if 07k0m_t40k0 or 08k0m_t40k0 or 11k0m_t40k0 match in file name then folder two file merge in folder 1 file and save in csv one by one 

1 Ответ

1 голос
/ 22 апреля 2020

Попробуйте следующее:

import glob
import pandas as pd

lst_folders = ['folder_1',
               'folder_2']

lst_str_find = ['07k0m_t40k0', '08k0m_t40k0', '11k0m_t40k0']


lst_files_1 = sorted(glob.glob(lst_folders[0]+'/*.txt'))
lst_files_2 = sorted(glob.glob(lst_folders[1]+'/*.txt'))

for file_1 in lst_files_1:
    str_search = file_1[file_1.find("/")+1:file.find("s_")]

    if any([(str_search in i) for i in lst_str_find]):

        for file_2 in lst_files_2:

            if file_name in file_2:
                print(file_1)
                print(file_2)

                # here load,merge and save file_1 & file_2 - the specific code
                # depends on the structure of your files and the way you want
                # to import them. Should look similar to:
                # 
                # merge_1 =  pd.read_csv(file_1)
                # merge_2 =  pd.read_csv(file_2)
                # merged_file = pd.concat([merge_1, merge_2])
                # merged_file.to_csv (lst_folders[0]+'/merged_'+str_search+'.csv', index=None)

Примечания:

  • Возможно, потребуется настроить чтение / слияние / запись в зависимости от фактической структуры ваших файлов, которая не из вашего поста станет понятно
  • код предполагает, что он находится в том же каталоге, что и папки. Если это не так, пути должны быть соответствующим образом скорректированы

Дайте мне знать, если это сработало:)

...