我試圖從文本文件打印幾行到python上,輸出它。我當前的代碼是:如何從文件中打印多行python
f = open("sample.txt", "r").readlines()[2 ,3]
print(f)
但是我得到的錯誤消息:
類型錯誤:列表索引必須是整數,而不是元組
有反正這個固定或打印多行從一個文件中單獨打印出來?
我試圖從文本文件打印幾行到python上,輸出它。我當前的代碼是:如何從文件中打印多行python
f = open("sample.txt", "r").readlines()[2 ,3]
print(f)
但是我得到的錯誤消息:
類型錯誤:列表索引必須是整數,而不是元組
有反正這個固定或打印多行從一個文件中單獨打印出來?
您正嘗試將一個元組傳遞給[...]
預訂操作; 2 ,3
是兩個元素的元組:
>>> 2 ,3
(2, 3)
您有幾種選擇在這裏:
使用切片取子列表從所有行。從3號線[2:4]
片,包括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
塊完成。
這是隻打印一次如果要使用這個大文件 –
@MansurAli:不是確定你在問什麼。 'islice()'非常適合大文件。 –
將整行的列表分配給一個變量,然後分別打印第2行和第3行。
with open("sample.txt", "r") as fin:
lines = fin.readlines()
print(lines[2])
print(lines[3])
這是exaclty我想盡量避免,但無論如何:) :) –
&不要擔心我從Jay Patel得到答案 –
你不能同時做'[2,3]'。 Do'f = open(「sample.txt」,'r')。readlines(); print(f [2],f [3])' –
如果你想要列表元素2和3,你可以執行'... [2:4]'。 – khelwood
@JayPatel我該怎麼做? –