21

ファイルを読み取り、そのファイルに基づいてテストを完了するスクリプトがありますが、ファイルが 1 時間後にリロードされ、スクリプトがその時点以降にファイルを再読み取りできないため、問題が発生しています。

そう:

  • 読み取る新しいファイルを取得します
  • ファイルを読み取ります
  • ファイルでテストを実行します
  • GET NEW FILE TO READ (同じ名前ですが、ソリューションの一部である場合は変更される可能性があります)
  • 新しいファイルを読み取ります
  • 新しいファイルで同じテストを実行する

Python にファイルを再読み込みさせる方法を提案できる人はいますか?

4

2 に答える 2

38

ファイルseekの先頭まで

with open(...) as fin:
    fin.read()   # read first time
    fin.seek(0)  # offset of 0
    fin.read()   # read again

または、ファイルを再度開きます (そうしないと、パス間で何もせずにファイルを 1 時間開いたままにしておくので、この方法をお勧めします)

with open(...) as fin:
    fin.read()   # read first time

with open(...) as fin:
    fin.read()   # read again

これをまとめると

while True:
    with open(...) as fin:
        for line in fin:
            # do something 
    time.sleep(3600)
于 2013-06-10T10:38:13.590 に答える
19

次の方法で、カーソルをファイルの先頭に移動できます。

file.seek(0)

その後、正常に読み取ることができます。

于 2013-06-10T10:36:34.693 に答える