Python 3.x 如何从python文件打印多行

Python 3.x 如何从python文件打印多行,python-3.x,Python 3.x,我试图将文本文件中的几行打印到python上,并在python中输出。我目前的代码是: f = open("sample.txt", "r").readlines()[2 ,3] print(f) 但是,我收到以下错误消息: TypeError:列表索引必须是整数,而不是元组 有没有办法解决这个问题,或者从一个文件中打印多行而不单独打印出来 将整个行列表分配给一个变量,然后分别打印第2行和第3行 with open("sample.txt", "r") as fin: lines =

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

f = open("sample.txt", "r").readlines()[2 ,3]
print(f)
但是,我收到以下错误消息:

TypeError:列表索引必须是整数,而不是元组


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

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

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

您正试图将元组传递给
[…]
订阅操作
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()
    并将文件对象用作iterable;这是最有效的方法,因为除了打印工作之外,无需在内存中存储任何行:

    from itertools import islice
    
    with open("sample.txt", "r") as f:
        for line in islice(f, 2, 4):
            print line.rstrip()
    
    我还将file对象用作上下文管理器,以确保在完成
    with
    块后再次正确关闭它


您不能同时执行
[2,3]
。Do
f=open(“sample.txt”,“r”).readlines();打印(f[2],f[3])
如果你想列出元素2和3,你可以这样做。@JayPatel我该怎么做?@khelwood我不明白?@LoY4lFrost
lines=open(“sample.txt”,“r”)。readlines()[2:4]
会给你一个包含文件第2行和第3行的列表。这正是我试图避免的,不过还是要谢谢你:)&别担心,我从杰伊·帕特尔那里得到了答案。这只打印了一次,如果你想用它来打印大尺寸的东西呢file@MansurAli:不知道你在问什么
islice()
非常适合大文件。