Python 文件 write() 没有正确写入/格式化

标签 python

我正在尝试计算每个数字在文件中出现的次数,然后将原始数字及其计数打印到另一个文件。原始数字按升序排列。计数足够接近,但问题是最终格式。它以某种方式颠倒了我打印它们的顺序!

这是我的代码:

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/

相关文章:

python - Python 中的 DOM 操作(如果某个元素只包含一个其他元素......)

python - 使用 beautifulsoup 搜索标签内的文本并返回标签中后面的文本

python - python 中的 def 在 C 中意味着什么

python - 开始自动化测试

python - 无套接字多人游戏

python - 为什么我在循环 pandas 数据帧时收到此错误

python - 从第三方 api 返回项目列表的 DRF 方式是什么?

python - 使用日期时间功能删除旧文件夹

Python-在字符串中插入一个字符

python - Pandas If 函数或 groupby