使用python从文本文件一次打印一行

时间:2015-12-14 21:41:08

标签: python list

好的,所以我已经倾倒了这个网站,我可以找到任何有用的东西。 这是我的代码

print("Type the filename")
file_again = raw_input("> ")

lines = [6]
with open(file_again, 'r') as f:
    lines = f.read().splitlines()
for line in lines:
    print line 

但是我不能让它逐行打印出来,而且每行都是一位数。我也想使用计数器,但我无法正确使用该语法。我尝试枚举,但对我来说效果不好

2 个答案:

答案 0 :(得分:1)

print("Type the filename")
file_again = raw_input("> ")

with open(file_again, 'r') as f:
    lines = f.readlines()

for num, line in enumerate(lines, 1):
    print "%s: %s" % (num, line) 

基本上,你有两个问题:

  1. 你需要循环线。为此,请使用readlines(),它返回您可以迭代的列表中的所有行。
  2. 您需要打印计数器和线值。为此,enumerate()将简明扼要地为您提供for循环中的计数器。然后,格式化打印行以显示计数器和行值。

答案 1 :(得分:0)

Python中的文件对象是迭代器。所以你可以直接迭代它们:

\0

from __future__ import print_function # get Python 3 printing in Python 2 with open(file_again) as fobj: for lineno, line in enumerate(fobj, 1): print('{}: {}'.format(lineno, line), end='') 不会在打印件上添加换行符,因为每行的末尾都有换行符。

这种方法的优点是您可以轻松处理大型文件,因为您不需要一次读取整个文件。