Python 3.x 如何从python文件打印多行
我试图将文本文件中的几行打印到python上,并在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 =
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()
- 使用
并将文件对象用作iterable;这是最有效的方法,因为除了打印工作之外,无需在内存中存储任何行:itertools.islice()
我还将file对象用作上下文管理器,以确保在完成from itertools import islice with open("sample.txt", "r") as f: for line in islice(f, 2, 4): print line.rstrip()
块后再次正确关闭它with
[2,3]
。Dof=open(“sample.txt”,“r”).readlines();打印(f[2],f[3])
如果你想列出元素2和3,你可以这样做。@JayPatel我该怎么做?@khelwood我不明白?@LoY4lFrostlines=open(“sample.txt”,“r”)。readlines()[2:4]
会给你一个包含文件第2行和第3行的列表。这正是我试图避免的,不过还是要谢谢你:)&别担心,我从杰伊·帕特尔那里得到了答案。这只打印了一次,如果你想用它来打印大尺寸的东西呢file@MansurAli:不知道你在问什么islice()
非常适合大文件。