我正在使用基本块来排序和打印.csv文件。除了正在打印的几个空白行之外,它的排序和打印正确,但它们在实际的csv文件中不存在。
file = open("class1.csv", "r")
sort = sorted(file,key=operator.itemgetter(0))
for eachline in sort:
print (eachline)
答案 0 :(得分:2)
问题是迭代文件会在最后留下换行符:
>>> for i in open("a.py"):
... print(repr(i))
...
'import math\n'
'\n'
'\n'
<snipped>
因此,当您打印行时,print
函数会在结尾添加另一个"\n"
,您会得到类似的内容:
>>> print("import math\n")
import math
>>>
解决此问题的最简单方法(我假设您使用的是Python 3,使用print
括号判断)是使用end
的{{1}}选项:
print
这会阻止for eachline in sort:
print(eachline, end="")
添加额外的print
(它会添加"\n"
,而不会执行任何操作),因此没有额外的换行符:
""
如果您使用的是python 2或者不想修改>>> print("import math\n", end="")
import math
>>>
,则可以使用print
删除"\n"
:
str.replace