簡體   English   中英

延遲循環從文本文件中逐行打印一行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM