私は初心者でPythonを使用しています。次のコードは、フォルダとその内容で作成された最新のファイルの名前を表示し、30秒ごとに印刷を続けます。値が前のサイクルと同じである場合の印刷を中止する方法 - Python
import glob
import os
import time
while True:
newest=max(glob.iglob('/Users/BetaBrawler/Downloads/HernanVillela/*'), key=os.path.getctime)
print newest
file = open(newest,'r')
texto = [x.strip() for x in file.readlines()]
print texto
time.sleep(30)
私はそれが新しいファイルがで作成された場合、次の出力が前の(同じファイルとその内容)のみの印刷と同じ値を持っている場合、コンソールは、印刷を停止することですやりたいだけの事フォルダー。ファイルが変更されていない場合 1.それは、30秒間スリープしていません:
このリファクタリングは、元のスクリプトのいくつかの行動を変えます。効果は、ファイルが変更されない場合、新しいファイルが見つかるまで内容が非常に迅速に印刷されることです。 2.ファイルの各行は 'strip'pされません。 3.これは正しく動作するには 'newest = oldfile'がおそらく' newest == oldfile'であるべきだと思います。 – theunraveler
@theunraveler:バグレポートに感謝します。私は休みの日があると思う。 – inspectorG4dget
@theunravelerコードは正常に動作しますが、作成された最後のファイルの内容のみが出力されます。ファイルの名前を印刷するために何かを追加または削除する必要がありますか? – Beta