我正在尝试计算每个数字在文件中出现的次数,然后将原始数字及其计数打印到另一个文件。原始数字按升序排列。计数足够接近,但问题是最终格式。它以某种方式颠倒了我打印它们的顺序!
这是我的代码:
with open(filename) as f:
prevLine=f.readline()
out = open(outfile,'w')
for line in f:
if line == prevLine:
curCount = curCount+1
else:
out.write("%s \t\t %d\n" % (prevLine , curCount))
curCount =1
prevLine=line
out.close()
前几行应该是这样的:
1 7935
2 4455
3 2956
有 7,935 个一号位、4,455 个二号位和 2,956 个三号位。 但是当我查看我创建的新文件 (outfile) 时,我得到了这个:
1
7935
2
4455
换行符应该在末尾,而不是在数字之间。为什么会这样?
最佳答案
prevLine
末尾仍有换行符,将您的写入行更改为以下内容:
out.write("%s \t\t %d\n" % (prevLine.rstrip() , curCount))
关于Python 文件 write() 没有正确写入/格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15887399/