#前提・実現したいこと
Python 2です。
requestsモジュールを使って、あるサイトをスクレイピングした結果をファイルに書き出しています。
前に取得した古い結果ファイルがあり、スクリプト内でfilecmp.cmp関数を使って比較をすると、
内容に差分が無いのに比較結果がFalseになります。
作成した結果ファイルはdiffコマンドで比較しても差分は無く、手動で対話形式にてilecmp.cmp関数を
使って比較をするとTrueとなります。
どなたか原因がお分かりになる方がいらっしゃいましたらご教授頂けないでしょうか。
#該当のコード
import requests import json import filecmp file_new = "/tmp/new.log" file_old = "/tmp/old.log" with open(file_new, "w") as f: # 以下にrequestsモジュールにてスクレイピングする処理を記載しています # 上記で取得した結果をJSON形式でファイルに書き出しています json.dump(result, f, ensure_ascii=False, indent=4, sort_keys=True, separators=(",", ": ")) # ファイルの比較結果がFlaseになります print(filecmp.cmp(file_old, file_new))
試してみたこと
スクリプトでは比較結果がFalseになりますが、スクリプトで作成した結果ファイルを
手動で対話形式にてilecmp.cmp関数を使って比較をすると正常にTrueとなります。
>>> import filecmp >>> file_new = "/tmp/new.log" >>> file_old = "/tmp/old.log" >>> if (filecmp.cmp(file_old, file_new)): ・・・ print("True") ・・・else: ・・・ print("False") True
diffコマンドによる比較でも差分はありません。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/23 16:19 編集
2018/06/23 16:19
2018/06/23 16:20
2018/06/23 16:25 編集