Ответ 1
Измените open(filePath)
на open(filePath, 'rb')
, где b
используется для двоичного режима. В настоящее время вы открываете текстовый режим, что может вызвать проблемы с переносимостью.
У меня есть приложение python, в котором я создаю пакеты в окнах, которые будут использоваться, а затем сравниваются в приложении linux python. Я создаю md5 для файла в окнах, которые будут проверяться позже в linux. Проблема в том, что один и тот же код в одном файле дает разные результаты хеша Md5 в каждой среде. Ниже приведен метод, который я использую для вычисления Md5. (Это один и тот же код на каждом конце, и я использую Python 2.6.5 для сред Windows/Linux). Когда я запускаю его в одном файле в разных средах, я получаю хэши md5, которые не совпадают.
def md5_for_file(filePath):
md5 = hashlib.md5()
file = open(filePath)
while True:
data = file.read(8192)
if not data:
break
md5.update(data)
file.close()
return md5.hexdigest()
Любые идеи или предложения приветствуются.
Измените open(filePath)
на open(filePath, 'rb')
, где b
используется для двоичного режима. В настоящее время вы открываете текстовый режим, что может вызвать проблемы с переносимостью.
проверьте, используют ли оба файла одну и ту же кодировку и линименты