如何读取用户在python中输入的文本文件

时间:2014-04-07 16:40:35

标签: python

我所能得到的就是这个。

f = open(input('enter file'))
lines = f.readlines()
lines[10]
print("lines")

任何帮助? 我把它改成了[0,11]行

问题已被回答

2 个答案:

答案 0 :(得分:3)

BorrajaX的解决方案并不理想,因为它会读取整个文件。更好的是使用python的内置文件迭代器。 enumerate包装此迭代器以计算返回的行数。

f = open(input('enter file'))
for lnum, line in enumerate(f):
  print(line, end='')
  if lnum == 9:
    break

修改 另一种方法(归功于Robᵩ):

import itertools
f = open(input('enter file'))
print(''.join(itertools.islice(f, 10)))

这稍微快一点,但峰值记忆力更高。

答案 1 :(得分:2)

lines是一个列表。 lines[10]为您提供lines列表的第11个元素。它没有对它进行切片(请查看此answer关于切片符号)。

此外,使用print("lines"),您需要打印字符串"lines",而不是变量 lines。尝试:

f = open(input('enter file'))
lines = f.readlines()
print(lines[0:10])

编辑:

感谢用户Robᵩ帮助我意识到我已经忘记了我的基本Python。的: - d

如果您的元素少于10个,则不需要min来控制切片:

>>> [1,2,3,4,5][0:10]
[1, 2, 3, 4, 5]