【问题标题】:Printing out each line (from file) with line number python [duplicate]用行号python打印出每一行(从文件中)[重复]
【发布时间】:2017-08-29 02:07:39
【问题描述】:

我有一个 .txt 文档,其中一些单词位于不同的行

例如:

hello
too
me

我试图弄清楚如何打印每一行,每个单词所在的行号从 1 开始,而不是从 0 开始

想要的输出:

1 = hello
2 = too
3 = me

我已经有了从文本文档中取出线条的解决方案

open_file = open('something.txt', 'r')
lines = open_file.readlines()
for line in lines:
    line.strip()
    print(line)
open_file.close()

我知道我可以打印出每个单词所在的索引,除非我弄错了,否则行号将从 0 而不是 1 开始。在此致谢

【问题讨论】:

  • 你说:我可以打印出每个单词的索引。你应该展示你将如何做到这一点......
  • 为什么不能给索引加1?
  • print(index + 1, ' = ', line) 有问题吗?
  • 老实说,我什至没有意识到你可以 + 1 列表索引,因为我对编程很陌生,所以,谢谢

标签: python list file loops


【解决方案1】:

您应该使用枚举器和迭代器,而不是将整个文件读入内存:

with open('something.txt', 'r') as f:
    for i, line in enumerate(f, start=1):
        print('{} = {}'.format(i, line.strip()))

【讨论】:

  • 你可以使用enumerate(f, start=1)来避免添加。
  • 谢谢!我不知道。这是一件好事:)
  • How to Answer 所述,请避免回答不清楚、过于宽泛、错字、无法重现或重复的问题。编写我的代码请求和省力的家庭作业问题对于Stack Overflow 来说是题外话,更适合专业的编码/辅导服务。好的问题坚持How to Ask,包括minimal reproducible example,有研究工作,并且有可能对未来的访问者有用。回答不恰当的问题会使网站更难导航并鼓励进一步提出此类问题,从而损害网站,这可能会赶走其他自愿提供时间和专业知识的用户。
  • 直到现在我才知道枚举,但经过一些研究,我可以看到这个解决方案是如何工作的。谢谢!
猜你喜欢
  • 1970-01-01
  • 2017-12-01
  • 2015-03-06
  • 2022-10-15
  • 1970-01-01
  • 2020-01-16
  • 2020-06-05
  • 2017-05-23
  • 1970-01-01
相关资源
最近更新 更多