У меня есть сценарий для генерации файлов с помощью python, в некоторых случаях скрипт выполняется с помощью python из windows, а в других случаях - с питоном cygwinРазличия между файлами, сгенерированными с помощью python windows и python cygwin
текст из файлов одинаково, но если я использую difflib,
gen_file_data = open(gen_file)
base_file_data = open(base_file)
gen_file_content = gen_file_data.read().splitlines(True)
base_file_content = base_file_data.read().splitlines(True)
gen_file_data.close()
base_file_data.close()
diff = difflib.unified_diff(gen_file_content, base_file_content, n=0)
diff = ''.join(diff)
файлы различны.
И, если я использую md5, получаю различный хеш.
import hashlib
base_md5 = hashlib.md5(base_file_content).hexdigest()
gen_md5 = hashlib.md5(gen_file_content).hexdigest()
print gen_md5, base_md5
Если сравнивать файлы с kdiff3
я получаю
Files A and B have equal text, but are not binary equal.
как я могу comparate текста diferences между двумя файлами ?, один генерироваться с питоном окон и других сгенерированных с питоном окон.
Как вы думаете, это может быть конец строки? Windows использует '\ r \ n', тогда как unix (который эмулирует cygwin) использует '\ n' – user590028
@ user590028 спасибо, я добавляю '.replace ('\ r \ n', '\ n')' для хранения содержимого, и это решить проблему. – JuanPablo
@ пользователь590028 Вы можете оставить свой комментарий, как свой ответ. для закрытия вопроса. – JuanPablo