Windows 7を使用して、私は2つのフォルダ、ファイルを処理する「マスター」フォルダ、およびNAS4Freeサーバーの「バックアップ」フォルダを持っています。filecmp.cmp()はいつ偽陽性または偽陰性を返しますか?
私は800以上のjpgファイルを持っています。合計サイズは2.6GBで、サイズは124KBから16MBです。
I頻繁に「スワップ」ファイル名、すなわち:
rename 01-020.jpg 99-020.jpg
rename 01-040.jpg 01-020.jpg
rename 99-020.jpg 01-040.jpg
私はまた、新しいファイルを追加 - 01-030.jpgを - そして、すなわち、セットの番号を変更:
rename 01-020.jpg 99-020.jpg
rename 01-030.jpg 99-040.jpg
rename 01-040.jpg 99-060.jpg
rename 99-020.jpg 01-020.jpg
rename 99-040.jpg 01-040.jpg
rename 99-060.jpg 01-060.jpg
を保つためにマスターフォルダとバックアップフォルダが同期していると、最初にフォルダ全体のXCOPYまたはROBOCOPYを調べましたが、それは時間がかかりすぎます。特に、ファイルの大部分が変更されていないためです。
私はPython 3のソリューションを考え出しています。私はfilecmp.cmp()のドキュメントを読んだ。どのような私を心配することは文です:
「...彼らは同じように見える場合はTrueを返します...」(強調鉱山)。
浅い= Falseを指定すると、大部分の比較が一致するときにfilecmpが1,600+ファイルの内容を比較するようになります。
shallow = Trueを指定すると、filecmpはos.stat()関数を使用します。 filecmpがTrueを返す2つのファイルで、その関数でテストを実行すると、statによって返される値のいくつかは同一であり、他のものは異なります。明らかに、filecmpは、ファイルが等しいかどうかを判断するためにstatが返すすべての値を使用しません。
私の質問:実際の状況では、filecmp.cmp(file1、file2、shallow = True)は偽陽性または偽陰性を返しますか?それを信用できますか?
また、os.stat()が返す特定の値のfilecmp.cmp()で使用できる「サブ疑問」は?
(あなたは私がファイルをやっている好奇心旺盛なら、私はそれをここで議論:https://hikearizona.com/dex2/viewtopic.php?f=78&t=9538)
私の質問に正確に答えました。要約すると:ファイルの種類を記述するファイルモード(st_mode)の部分**および**ファイルのサイズ(バイト数)**および**最新のコンテンツ変更の時刻(秒単位)が等しい場合、ファイルは「等しい」とみなされます。 –