我有 100 个 CSV,总计 150+ GB 的数据。我想将它们全部合并到一个 CSV 文件中,这样我就可以将该 CSV 文件转储到 SQLite 数据库中以便于查询。
这篇 stackoverflow 帖子(R - 如何将多个 .csv 文件合并为一个而不会使内存过载?)建议使用 csvstack 实用程序来执行此操作,并且能够仅指定文件夹本身和通配符文件名。
但是,这似乎不适用于 Windows - 我收到错误
OSError: [Errno 22] Invalid argument: '*.csv'
。单独指定每个文件名不是一个选项。
如何在 Windows 上使用通配符选择?
我尝试从文件夹内部运行该实用程序并仅指定
*.csv
作为输入,以及从文件夹外部运行该实用程序并指定 folder/*.csv
作为输入。
这是添加文件的简单代码,确保只有第一个文件头写入新文件。将文件路径替换为文件输入位置和文件输出位置的路径。
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())