通过python将txt转换为CSV:为什么我会得到额外的空行?
我想将.txt文件转换为CSV格式。下面是我的.txt文件中的示例:通过python将txt转换为CSV:为什么我会得到额外的空行?,python,export-to-csv,Python,Export To Csv,我想将.txt文件转换为CSV格式。下面是我的.txt文件中的示例: 0 1 1 346 5 10 以下是我正在使用的代码: import csv txtfile = r"file.txt" csvfile = r"file.csv" with open(txtfile, 'r') as infile, open(csvfile, 'w') as outfile: stripped = (line.strip() for line in infi
0 1
1 346
5 10
以下是我正在使用的代码:
import csv
txtfile = r"file.txt"
csvfile = r"file.csv"
with open(txtfile, 'r') as infile, open(csvfile, 'w') as outfile:
stripped = (line.strip() for line in infile)
lines = (line.split() for line in stripped if line)
writer = csv.writer(outfile)
writer.writerows(lines)
因此,我在每一行后面都会有一个空行(=>所有偶数行都是空的):
.
但是,在.txt文件中没有空行
有人能帮我弄清楚为什么我会在CSV文件中得到这些额外的空行吗?
CSV.writer(outfile)
应该是CSV.writer(outfile,newline='')
。这告诉csv编写器使用空字符串作为换行符。这意味着它不使用新行。我建议使用pandas
的方法,您可以将文本文件读入数据框
,然后将其写入CSV文件:
import pandas as pd
df = pd.read_table('file.txt', sep='\s', engine='python', header=None)
df.to_csv('file.csv', header=False, index=False)
这可能有点过头了,但绝对值得学习
pandas
txt到csv转换的原因是什么?如果你只想通过一个扩展软件打开文件,你可以考虑重命名文件扩展名并相应地设置导入选项。是的,那正是我的问题,非常感谢!我以前没找到这根线。嗨,阿尔伯特!谢谢你的评论。在txt文件中,我有一个有向图的边列表:第一列是头,第二列是尾。使用它,我可以计算这个图的强连接组件,所以我认为CSV格式比txt格式更方便地解决这个任务。我需要将“head”和“tails”放在不同的列中,而重命名文件扩展名会将整个raw放在第一列的一个单元格中;因此,不幸的是,简单的重命名在这里并没有真正的帮助。潜在的问题似乎与您的数据导入选项有关。将扩展名从csv重命名为txt不会更改文件内容。此外,txt和csv在技术上是相同的(包含数据的纯文本文件)。谢谢!我还使用了buran上面提到的一个链接,所以我在这里添加了新行:with。。。打开(csvfile,'w',newline='')作为outfile:
感谢您的评论和建议<代码>熊猫是我绝对需要学习的东西。