csvstack 输入文件夹而不是单个文件?

问题描述 投票:0回答:1

我有 100 个 CSV,总计 150+ GB 的数据。我想将它们全部合并到一个 CSV 文件中,这样我就可以将该 CSV 文件转储到 SQLite 数据库中以便于查询。

这篇 stackoverflow 帖子(R - 如何将多个 .csv 文件合并为一个而不会使内存过载?)建议使用 csvstack 实用程序来执行此操作,并且能够仅指定文件夹本身和通配符文件名。

但是,这似乎不适用于 Windows - 我收到错误

OSError: [Errno 22] Invalid argument: '*.csv'
。单独指定每个文件名不是一个选项。

如何在 Windows 上使用通配符选择?

我尝试从文件夹内部运行该实用程序并仅指定

*.csv
作为输入,以及从文件夹外部运行该实用程序并指定
folder/*.csv
作为输入。

python sqlite csv
1个回答
0
投票

这是添加文件的简单代码,确保只有第一个文件头写入新文件。将文件路径替换为文件输入位置和文件输出位置的路径。

import glob

with open('OUTPUT_PATH/output.csv', 'w') as out:
    for i, filename in enumerate(glob.glob('INPUT_PATH/*.csv')):
        with open(filename) as f:
            if i > 0:
                f.readline()
            print(f'Adding file: {filename} to output.csv')
            out.write(f.read())
© www.soinside.com 2019 - 2024. All rights reserved.