尝试将文本文件转换为 csv,但在转换后的文件中,我在每行的开头和结尾处得到方括号,并在每个字符周围加上单引号。
在第一步中,我尝试删除单引号,但这似乎不起作用
代码如下:
with open('New-file_0.csv','w') as p3:
with open ('New-file_1','r') as p2:
for line in p2:
if not line.isspace():
print(line.split(),file = p3)
with open ('final-file_1.csv','w') as p2:
with open('New-file_0.csv','r') as p3:
for line in p3:
line=line.replace("'","")
print(line.split(),file = p2)
最佳答案
这里有几个问题:
通常使用
p3.write(myline)
,而不是打印到文件。split()
生成列表,您当前将其提供给打印函数,以便将它们写入您的文件。你想给他们的是一个字符串,例如",".join(line.split())
由于在这种情况下,您想要生成一个 .csv 文件,因此最好避免所有这些并使用内置 csv 模块,该模块将负责将列表转换为字符串:
import csv with open(output_file,'wb') as p3: # make sure to use 'wb' for binary writing, or you will get unwanted empty rows output_data = csv.writer(p3, delimiter=",") with open (input_file,'r') as p2: for line in p2: row = line.strip().split() if row: output_data.writerow(row)
(此模块还允许使用 csv.read()
将 .csv 文件读取到行列表中)。
关于 python : unable to convert text to csv properly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52144847/