2016-09-01 12 views
0

私はファイル 'aisha.txt'からデータを読み込んでいます。データは1行ずつ読み込まれ、ファイルは継続的に更新され、最新の行またはファイルの最後にアクセスしたい。どうやってやるの?Pythonを使用して継続的に更新するファイルの最新の行にアクセスする

ファイルへの書き込みに使用されるコードは次のとおりです。

import time 
a= open('c:/test/aisha.txt','w') 
while(1): 
    a.write(str(i)) 
    a.write("\n") 
    i+=1 
a.close  
+1

https://stackoverflow.com/questions/5419888/reading-from-a-frequently-updated-file – Cassian

答えて

0

ファイルの最後の行を読み取るには、ファイル内の任意の行の最大の長さを知っていれば、それが最も簡単です。その後、ファイルの末尾からその数の文字を検索し、前方に読むことができます。ファイルの終わりの前に読んだ最後の行が、あなたが望むものです。

import os 

MAXLEN = 132 

file = open('testfile','r') 

try: 
    file.seek(-MAXLEN, os.SEEK_END) 
except IOError: 
    pass 

last = "No lines in file" 
while True: 
    s = file.readline() 
    if len(s) == 0: 
     break 
    last = s 

file.close() 

print last 

、それが閉じられるまで、あなたがWindows上でこのプログラムを実行していて、元のファイルがまだ開いている場合、Windows上のファイルが書き込みのために開かれているため、プログラムが失敗することを注意は読めません。

関連する問題