在python中打印.csv文件时出现空行
我正在使用基本块对.csv文件进行排序和打印。除了要打印的几行空行之外,它被正确地排序和打印,但它们不存在于实际的csv文件中在python中打印.csv文件时出现空行,python,csv,Python,Csv,我正在使用基本块对.csv文件进行排序和打印。除了要打印的几行空行之外,它被正确地排序和打印,但它们不存在于实际的csv文件中 file = open("class1.csv", "r") sort = sorted(file,key=operator.itemgetter(0)) for eachline in sort: print (eachline) 问题是,在文件上迭代会在末尾留下换行符: >>> for i in open("a.py"): ...
file = open("class1.csv", "r")
sort = sorted(file,key=operator.itemgetter(0))
for eachline in sort:
print (eachline)
问题是,在文件上迭代会在末尾留下换行符:
>>> for i in open("a.py"):
... print(repr(i))
...
'import math\n'
'\n'
'\n'
<snipped>
解决这一问题的最简单方法(我假设您使用的是Python 3,从带有print
的括号判断)是使用end
选项进行print
:
for eachline in sort:
print(eachline, end="")
这将阻止打印
添加额外的“\n”
(它将添加”
,而这不起任何作用),因此没有额外的换行符:
>>> print("import math\n", end="")
import math
>>>
如果您使用的是python 2或不想修改打印
,可以使用str.replace
剥离“\n”
:
for eachline in sort:
print(eachline.replace("\n", ""))
运算符。itemgetter(0)
将按每行的第一个字符进行排序。您确定您没有尝试按CSV的第一列进行排序吗?使用“替换”非常有效,谢谢@matsjoyce@Harry请你回答这个问题,好让其他用户知道这个问题已经解决了吗?谢谢。对于Python2,您可以简单地使用print eachline,
来抑制print
语句通常添加的换行符。这相当于Python 3中的print(eachline,end=“”)
函数调用。
for eachline in sort:
print(eachline.replace("\n", ""))