python为一批csv文件按列组合值

python为一批csv文件按列组合值,python,csv,Python,Csv,我有一批100多个CSV格式的文件: time,0 user time,0.6 CPU load, 5% swaps,0 etc 我必须合并所有这些文件- 此代码为我提供了所需的输出 加入-11-21-t,-a1 f1.csv f2.csv>res.csv time,0,0 user time,0.6,0.8 CPU load, 5%,7% swaps,0,0 etc 但我只能给出2个文件作为参数 有没有一种方法可以编写python代码来迭代目录中的所有csv文件(即使是bash文件也可以)

我有一批100多个CSV格式的文件:

time,0
user time,0.6
CPU load, 5%
swaps,0
etc
我必须合并所有这些文件- 此代码为我提供了所需的输出 加入-11-21-t,-a1 f1.csv f2.csv>res.csv

time,0,0
user time,0.6,0.8
CPU load, 5%,7%
swaps,0,0
etc
但我只能给出2个文件作为参数
有没有一种方法可以编写python代码来迭代目录中的所有csv文件(即使是bash文件也可以)

类似的内容?它使用
glob
打开当前工作目录中的所有.csv文件(output.csv除外,如果存在):


是的,您可以在Python和Bash中这样做。也就是说,如果你有问题,请准确描述你有什么问题。作为这里的一个新用户,也可以阅读。最后,在盲目应用标签之前,请阅读标签说明。更具体地说,“linux”标签是完全错误的。
def main():

    from pathlib import Path
    from contextlib import ExitStack
    from csv import reader
    from collections import defaultdict

    master_dict = defaultdict(list)

    glob_pattern = "[!output]*.csv"

    with ExitStack() as stack:
        readers = [reader(stack.enter_context(path.open("r"))) for path in Path(".").glob(glob_pattern)]
        for reader in readers:
            for row in reader:
                key, value = row
                master_dict[key].append(value)

    with Path("output.csv").open("w") as master_file:
        for key, value_list in master_dict.items():
            master_file.write(",".join([key] + value_list) + "\n")

    return 0


if __name__ == "__main__":
    import sys
    sys.exit(main())