【问题标题】:Python How to compare similar file names in multiple directory?Python如何比较多个目录中的相似文件名?
【发布时间】:2022-08-19 01:13:43
【问题描述】:

多个目录中有多个文件。接下来,我想比较来自不同目录的相似名称的文件,以便在后期合并它。例如:我想将两个目录中的 a.csv、b.csv 等合并在一起。我能够从两个目录中获取文件名,但无法合并相似的名称文件。代码如下;

files_dir_1 has a.csv, b.csv, c.csv
files_dir_2 has a.csv, b.csv, c.csv

path = [files_dir_1, files_dir_1]
for i in path:
    for files in os.listdir(i):
        file_name = files[:files.find(\'.\')]
        file_name = file_name+\'.csv\'
        print(file_name) 
  • “合并”是指将文件的内容连接在一起并将其保存到输出目录吗?
  • 是的。使用通用 \'id\' 进行内部合并,并将输出保存在任何新目录中。

标签: python


【解决方案1】:

获得文件名列表后,您可以使用 set intersection 来获取常用文件名。

假设 dir1 是值列表 ['file1.csv', 'file2.csv' ...] 并且 dir2 是值列表 ['file2.csv' ...]

你可以做

set(dir1).intersection(set(dir2)) 

获取共同的文件名列表。

【讨论】:

  • “十字路口”不起作用
【解决方案2】:

您可以使用 pandas 进行连接。

import pandas as pd

df1 = pd.read_csv(...)
df2 = pd.read_csv(...)
df_merged = pd.merge(df1, df2, on="key")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-16
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多