Запись файлов на Python и возврат каретки в Windows

#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. ЧЕРТ, решаемая. Спасибо, Марк. Я приму после тайм-аута.