[英]Printing a line after another from a text file in loop with delay
我希望程序一個接一個地打印.txt中的行
import os
import time
with open('e.txt','rt') as f:
#for line in f: # for direct input
line = f.readline()
m = str(line)
print 'd', m
time.sleep(2)
line = f.readline()
g = str(line)
print 'f', g
如您所見,有兩行,因此以這種方式打印它們可以正常工作,但是當我想使用循環時
with open('e.txt','rt') as f:
for i, l in enumerate(f):
pass
d = i + 1
while d > 0 :
#with open('e.txt','rt') as f:
pos = f.tell();
f.seek(pos,0);
line=f.readline();
m = str(line);
time.sleep(1)
print 't: ', m
d -= 1
輸出是
t:
t:
我不明白我在做什么錯,請幫助
也預先感謝。
似乎您正在執行過度操作,可以像這樣簡單地完成操作:
import time
f = open('e.txt','r')
for line in f.readlines():
print(line)
time.sleep(1)
而已....
PS您不需要在開放的rt,因為t模式是默認的。
編輯:您的程序的問題是您試圖打印對象,因為當您編寫
f = open(...)
要么
with open(...) as f
f是文件對象,不能對其進行迭代,但是可以對f.readlines進行迭代,該f.readlines將文件中的行列表作為文本返回。
打開文件,迭代文件對象。
file = open( 'e.txt', 'r')
for line in file:
print(line)
“我希望程序以最簡單的形式依次打印.txt中的行”對應於:
with open('e.txt','r') as f:
for line in f:
print(line.strip())
延遲是選擇的問題,而不是解決原始請求的必要。 那里的.strip命令可以刪除任何換行符,這些換行符會在行之間產生一個空格。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.