繁体   English   中英

如何从文件python打印多行

[英]How to print multiple lines from a file python

我正在尝试将文本文件中的几行打印到 python 上,并在其中输出。 我目前的代码是:

f = open("sample.txt", "r").readlines()[2 ,3]
print(f)

但是,我收到以下错误消息:

类型错误:列表索引必须是整数,而不是元组

有没有办法解决这个问题或从文件中打印多行而不单独打印出来?

您正在尝试将元组传递给[...]订阅操作; 2 ,3是两个元素的元组:

>>> 2 ,3
(2, 3)

您在这里有几个选择:

  • 使用切片从所有行中获取子列表。 [2:4]从第 3 行开始切片,包括第 4 行:

     f = open("sample.txt", "r").readlines()[2:4]
  • 存储行并打印特定索引,一一:

     f = open("sample.txt", "r").readlines() print f[2].rstrip() print f[3].rstrip()

    我使用str.rstrip()在打印之前删除了仍然是该行一部分的换行符。

  • 使用itertools.islice()并将文件对象用作可迭代对象; 这是最有效的方法,因为除了打印工作之外,不需要在内存中存储任何行:

     from itertools import islice with open("sample.txt", "r") as f: for line in islice(f, 2, 4): print line.rstrip()

    我还将文件对象用作上下文管理器,以确保在完成with块后再次正确关闭它。

将整个行列表分配给一个变量,然后分别打印第 2 行和第 3 行。

with open("sample.txt", "r") as fin:
    lines = fin.readlines()
print(lines[2])
print(lines[3])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM