2016-04-01 36 views
0

У меня есть файлы для преобразования в формат Unix. Какова будут отличие/проблемы, которые я мог бы столкнуться, выбирая способ преобразования питона:Difference dos2Unix и скрипт python

import sys 
filename = sys.argv[1] 
text = open(filename, 'rb').read().replace('\r\n', '\n') 
open(filename, 'wb').write(text) 

вместо: вызова dos2unix команды Unix в подпроцессе?

Спасибо!

+0

Недопустимые кодировки в файле - это одна вещь, которая может сломать вашу программу Python. – tripleee

ответ

0

От man dos2unix:

Пакет dos2unix включает в себя утилиты "dos2unix" и "Unix2Dos" в преобразовывают текстовые файлы в DOS или в формате Mac в формат Unix и пороком наборот.

В текстовых файлах DOS/Windows разрыв строки, также известный как новая строка, представляет собой комбинацию из двух символов: возврат каретки (CR), а затем строку Line Feed (LF). В текстовых файлах Unix разрыв строки - это один символ: Линейный канал (LF). В текстовых файлах Mac до Mac OS X разрыв строки был единственным символом возврата каретки (CR). В настоящее время Mac OS использует разрывы строк Unix (LF).

Помимо линейных разрывов Dos2unix также может преобразовывать кодировку файлов. A несколько кодовых страниц DOS могут быть преобразованы в Unix Latin-1. И Windows Файлы Unicode (UTF-16) могут быть преобразованы в Unix Unicode (UTF-8).

...

-ASCII Преобразование только разрывы строк. Это режим преобразования по умолчанию.

dos2unix Таким образом, можно сделать больше, чем конвертировать разрывы строк, но поведение по умолчанию - это только.

Если ваш файл ошибочен, вам придется иметь дело с dos2unix.