私が直面している問題は、パスで os.stat を使用することの一部です (たとえば、C:\myfile1.txt を取ります)。このファイルで os.stat を実行し、結果のリストの 9 番目の要素を取得すると、変更された時間がいくつかの数値 (例: 1348167977) の形で取得されます。
注: これらの数値がどのように計算されるかはわかりません。
C:\myfile1.txt を作成すると、上記の例のような番号が表示されます。別のファイル C:\myfile2.txt を作成すると、C:\myfile1.txt よりも高い変更時刻を表す新しい数値が取得されます (これは予想どおりです)。最後に作成された 3 番目のファイル C:\myfile3.txt もあります。
C:\myfile2.txt をコピーし、C:\myfile3.txt を結果のコピー ファイルで上書きすると、問題が発生します。新しい C:\myfile3.txt の os.stat で示される変更時刻は、C:\ よりも小さくなります。 myfile1.txt. なぜこれが起こるのですか?C:\myfile3.txt の変更時刻は、すべての中で最も大きいか、少なくとも C:\myfile2.txt と同じでなければなりません。
回答ありがとうございます。これを十分に説明したいと思います。
編集:
ここで説明する内容をテストするためのサンプル コードをいくつか示します。別の時間に再実行すると、数値がすべて同じになる場合があります。出力している MTIME を完全には理解していないと思います。
import os
import shutil
import time
myfile1 = open("C:\\myfile1.txt", 'wt')
myfile1.close()
time.sleep(10)
myfile2 = open("C:\\myfile2.txt", 'wt')
myfile2.close()
time.sleep(10)
myfile2 = open("C:\\myfile3.txt", 'wt')
myfile2.close()
shutil.copyfile("C:\\myfile2.txt", "C:\\myfile3.txt")
modified_time_first = (os.stat("C:\\myfile1.txt")[9])
modified_time_second = (os.stat("C:\\myfile2.txt")[9])
modified_time_third = (os.stat("C:\\myfile3.txt")[9])
print "The first files modified time is: "
print modified_time_first
print ""
print "The second files modified time is: "
print modified_time_second
print ""
print "The third files modified time is: "
print modified_time_third
print ""