尝试将文本文件转换为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)
答案 0 :(得分:2)
这里有几个问题:
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文件读取到行列表中。)
答案 1 :(得分:0)
您在打印拆分数组时将其隐式转换为字符串,这并不是您想要的格式。使用join将数组转换回以逗号分隔的字符串。
print(",".join(line.split()), file=p2)