python - Python:无法正确将文本转换为 csv
问题描述
尝试将文本文件转换为 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 文件读取到行列表中csv.read()
)。
推荐阅读
- node.js - 为 Web 应用程序构建服务器
- php - PHP将所有文件/文件夹从一个目录复制到另一个目录
- terraform - 为什么我的 terraform 不能与 minikube 一起使用?
- c++ - 如何在视觉工作室的“包含目录”中添加所有子目录?
- r - 如何在数据框列表中删除符合特定模式的列
- java - 如何在测试容器中填充数据?
- jpa - JPA 可选关系
- macos - 在 macOS Catalina 10.15.5 上快速从屏幕上获取像素颜色
- hyperledger-fabric - 部署 Fabric 测试网络 fabcar 链码时出错
- xcode - 尝试在 SwiftUI 中加载视图时出现 exc_breakpoint