首页 > 解决方案 > 如何使用 Python3 将目录中的多个 CSV 文件转换为管道分隔的文本文件

问题描述

所以我是 Python(3) 的新手,需要创建一个循环,该循环将遍历近 200 个 CSV 文件,并将它们分别转换为一个以管道分隔的 .txt 文件(具有相同的名称)。

我有对 1 个文件执行此操作的代码并且可以完美运行:

import csv

with open('C:/Path/InputFile.csv', 'r') as fin, \
open('C:/Path/OutputFile.txt', 'w') as fout:
reader = csv.DictReader(fin)
writer = csv.DictWriter(fout, reader.fieldnames, delimiter='|')
writer.writeheader()
writer.writerows(reader)

提前致谢。

标签: python-3.xloopscsv

解决方案


您可以将代码修改为:

 for in_name, out_name in zip(list_of_in_names, list_of_out_names):
     with open(in_name, 'r') as fin, open(out_name, 'w') as fout:
         ...

您要分别读取和写入的文件的位置和list_of_in_names名称。list_of_out_names

编辑:要解决评论中的问题,您可以使用该pathlib库:

from pathlib import Path

for in_path in Path('C:/Path').glob('*.csv'):
     out_path = in_path.with_suffix('.txt')
     with in_path.open('r') as fin, out_path.open('w') as fout:
         ...

推荐阅读