4

ファイルが最後に読み取られた時刻を取得するソリューションを探しています。読み取りモードで開かれただけで、ファイルが変更または作成されることはありません。これは機能しますが、ファイルへの書き込みのみです。ファイルを読み取りモードで開くと、時刻が正しくありません。

f = open('my_path/test.txt', 'r')
f.close()

print time.ctime(os.stat('my_path/test.txt').st_mtime)

ヒントはありますか?

4

1 に答える 1

14

stat構造内の間違ったエントリを見ています。.st_atime代わりに次の値を使用します。

print time.ctime(os.stat('my_path/test.txt').st_atime)

os.stat()ドキュメントから:

  • st_atime- 最後にアクセスした時刻

atimeすべてのシステムがタイムスタンプを更新するわけではないことに注意してください。 atime の批判 を参照してください。2.6.30 の時点で、Linux カーネルはデフォルトでこの設定を使用します。このrelatime設定では、atime24 時間以上経過した場合にのみ値が更新されます。strictatimeでオプションを設定することで、これを変更できますfstab

Windows Vista も への更新を無効にしましたが、再度有効にするatimeことができます。

于 2013-05-09T14:32:41.937 に答える