如何根据文件名中的几个字符匹配来合并来自不同文件夹的两个文件



我有两个带有文本文件的文件夹,我想从第一个文件夹中读取文件,并在第二个文件夹中检查文件名中是否有特定字符匹配,然后在"时间"列上合并,对几个文件执行此操作

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 

尝试以下操作:

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)

注:

  • 读取/合并/写入可能需要调整,具体取决于实际你的文件结构,从你的帖子中没有变得清晰
  • 代码假定它与文件夹位于同一目录中。如果不是这样,则必须相应地调整路径

如果有效,请告诉我:(

最新更新