#python #linux #windows #opencv #carriage-return
#python #linux #Windows #opencv #возврат каретки
Вопрос:
Я использую библиотеку Python OpenCV для извлечения дескрипторов и записи их в файл. Каждый дескриптор имеет 32 байта, и я сохраняю только 80 из них. Это означает, что конечный файл должен быть ровно 2560 байт. Но это 2571 байт.
У меня также есть другой файл, который был написан с использованием того же скрипта Python (не в Windows, но я предполагаю, что это было в Linux), и это ровно 2560 байт.
Используя WinMerge, я попытался сравнить их, и он выдал мне предупреждение о том, что возврат каретки отличается в двух файлах, и спросил меня, хочу ли я обращаться с ними одинаково. Если я говорю «да», то оба файла идентичны, но если я говорю «нет», то они разные.
Мне было интересно, есть ли в Python возможность записи двоичных файлов, которые дают идентичный результат как в Windows, так и в Linux?
Не говоря уже о том, что это важная часть скрипта:
f = open("something", "w ")
f.write(descriptors)
f.close()
Комментарии:
1. Просто измените
open('something', 'w ')
наopen('something', 'w b')
Ответ №1:
Да, есть способ открыть файл в двоичном режиме — просто введите b
символ в open
.
f = open("something", "wb ")
Если вы не сделаете этого в Windows, каждый перевод строки 'n'
будет преобразован в двухсимвольную последовательность окончания строки, которая используется Windows, 'rn'
.
Комментарии:
1. ЧЕРТ, решаемая. Спасибо, Марк. Я приму после тайм-аута.