Python 使用os.walk将多个文本文件转换为csv
我在文件夹/子文件夹中有多个.txt文件,如下所示: 州文件夹 亚利桑那州分店 file1.txt file2.txt file3.txt 阿拉斯加子文件夹 file1.txt file2.txt file3.txt file4.txt 阿肯色州子文件夹 file1.txt file2.txt 我需要将所有文件转换为csv,并将每个文件夹的csv文件(如arizona_files.csv、alaska_files.csv)组合在一起。我尝试使用下面的代码,但没有输出。知道我做错了什么吗Python 使用os.walk将多个文本文件转换为csv,python,csv,Python,Csv,我在文件夹/子文件夹中有多个.txt文件,如下所示: 州文件夹 亚利桑那州分店 file1.txt file2.txt file3.txt 阿拉斯加子文件夹 file1.txt file2.txt file3.txt file4.txt 阿肯色州子文件夹 file1.txt file2.txt 我需要将所有文件转换为csv,并将每个文件夹的csv文件(如arizona_files.csv、alaska_files.csv)组合在一起。我尝试使用下面的代码,但没有输出。知道我做错了什么吗 impo
import os
import csv
for root, dirnames, filenames in os.walk(path):
for filename in filenames:
if filename.endswith('.txt'):
txt_file = ('*.txt')
csv_file = ('*.csv')
in_txt = csv.reader(open(filename, "rb"), delimiter = '\t')
out_csv = csv.writer(open('*.csv', 'wb'))
out_csv.writerows(filename)
您没有在正确的目录中执行代码。在命令提示符下初始化代码时,您需要将python脚本置于迭代路径的顶层。即,在States文件夹中或其上方,并从该路径启动它。或者,您也可以更改in_文本以执行以下操作:
in_txt = csv.reader(open(os.path.join(path,filename), "rb"), delimiter = '\t')
这将告诉csv.reader当前文件的确切位置。在编写csv时,您还必须添加相同类型的操作
out_csv.writerows(os.path.join(path,filename))
正如os.walk提供的文件名中所述,该文件名不包含path元素,要获得指向dirpath中文件或目录的以top开头的完整路径,请执行os.path.joindirpath,name。这就是为什么会出现此错误。您看到了哪些错误?您已经尝试了什么?@Logan这是我遇到的错误:IOError:[Errno 2]没有这样的文件或目录:“file2.txt”如果您遇到Errno 2,它就找不到该文件。确保从正确的目录和层次结构进行导航,并确保文件是否存在。与python脚本相关的文件和文件夹在哪里?filename只是文件名,而不是其路径。您需要执行os.path.joinroot,filename来获取文件的路径。而且,代码在很多方面看起来都是错误的。“csv”是一个尴尬的名字。此外,您正在为读取的每个文件覆盖该文件的内容。