Я столкнулся с чем-то чрезвычайно странным сегодня.

Вот что произошло: я написал короткий скрипт на Python (для проверки подключения к хосту) на работе с использованием PyDev. Я перенес его с моего ноутбука с Windows 7 на рабочую станцию Ubuntu через флэш-накопитель, и файл выглядел как кучка бреда. Я попытался повторно сохранить и переименовать файл, но это не помогло. Я попытался просмотреть файл на другой рабочей станции Ubuntu, и произошло то же самое. Это не повлияло ни на один из моих других файлов Python. Я сомневаюсь, что проблема в моем флэш-накопителе, потому что я могу отлично прочитать его на ноутбуке.

В конце концов я решил отправить мне файл по электронной почте, и это решило проблему. Кто-нибудь знает, что могло случиться?

1 ответ1

1

На основании предоставленной вами информации, я подозреваю, что это может быть связано с разницей в окончаниях строк, используемых в * nix и Windows. Проверьте эту страницу в Википедии.

Вы можете проверить, является ли конец строки причиной проблемы, проверив ее с помощью утилиты, которая может выводить символы ascii. В Ubuntu вы можете использовать hexdump

hexdump <filename> 

И вот пример, который иллюстрирует разницу в окончаниях строк между двумя системами. Входной файл представляет собой простой текстовый файл с именем sample.txt со словами line1 и line2 в отдельных строках.

$ cat sample.txt
line1
line2

Вывод файла sample.txt, созданного в системе Linux

sample.txt:
00000000  6c69 6e65 310a 6c69 6e65 320a           line1.line2.

Вывод файла sample.txt, созданного в системе Windows

sample.txt:
00000000  6c69 6e65 310d 0a6c 696e 6532 0d0a      line1..line2..

Для преобразования между типами окончания строки попробуйте dos2unix или fromtodos.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .