Python открывает текстовый файл с пространством между каждым символом

Существует также расширение Chrome, называемое RESULTER, которое не решает точной проблемы, описанной в вопросе, но в любом случае обеспечивает хорошую навигацию с результатами поиска.

Вы можете загрузить его из интернет-магазина: https://chrome.google.com/webstore/detail/resulter-shortcuts-for-se/chojfhfgbdaeokblbdeahgbijodikdpk

Официальный сайт: https://getresulter.com

17
задан tzot 3 March 2009 в 00:46
поделиться

7 ответов

Штанга рекурсивным является, вероятно, правильной..., что содержание файла, вероятно, кодируется многобайтовым набором символов. Если это - на самом деле, случай, можно, вероятно, считать файл в самом Python, не имея необходимость преобразовывать его сначала за пределами Python.

Попытка что-то как:

fread = open('input.csv', 'rb').read()
mytext = fread.decode('utf-16')

флаг 'b' гарантирует, что файл читается как двоичные данные. Необходимо будет знать (или предположение) исходное кодирование... в этом примере, я использовал utf-16, но YMMV. Это преобразует файл в unicode. Если у Вас действительно есть файл с многобайтовыми символами, я не рекомендую преобразовать его в ASCII, поскольку можно закончить тем, что теряли много символов в процессе.

РЕДАКТИРОВАНИЕ: Спасибо за загрузку файла. Существует два байта впереди файла, который указывает, что действительно, действительно, использует широкий набор символов. Если Вы любопытны, открываете файл в Hex-редакторе, поскольку некоторые предложили..., что Вы будете видеть что-то в текстовой версии как 'удостоверение личности |'. (и т.д.). Точка является дополнительным байтом для каждого символа.

фрагмент кода выше, кажется, работает над моей машиной с тем файлом.

18
ответ дан 30 November 2019 в 08:21
поделиться

Файл кодируется в некотором кодировании unicode, но Вы читаете его как ASCII. Попытайтесь преобразовать файл в ASCII перед использованием его в Python.

7
ответ дан 30 November 2019 в 08:21
поделиться

Не csv простой txt файл со значениями, разделенными с запятой. Просто попытайтесь открыть его с текстовым редактором, чтобы видеть, формируется ли файл правильно.

1
ответ дан 30 November 2019 в 08:21
поделиться

Это никогда не сделало не происходил со мной, но как truppo сказал, это должно быть что-то не так с файлом.

Попытка открыть файл в Excel/BrOffice Calc и Сохранить как файл как Csv снова.

, Если проблема сохраняется, попробуйте подмножество данных: кулак 10/последний 10/промежуточное звено 10 строк файла.

0
ответ дан 30 November 2019 в 08:21
поделиться

Хорошо, я получил его с помощью сообщения Jarret Hardie

, это - код, что я раньше преобразовывал файл в ascii

fread = open('input.csv', 'rb').read()
mytext = fread.decode('utf-16')
mytext = mytext.encode('ascii', 'ignore')
fwrite = open('input-ascii.csv', 'wb')
fwrite.write(mytext)

Спасибо!

0
ответ дан 30 November 2019 в 08:21
поделиться

Откройте файл в режиме двоичного счета, 'rb'. Проверьте его в Hex-редактор и проверку на пустой указатель, дополняющий '00'. Откройте файл в чем-то как Текстовый редактор Scintilla для проверки символов, существующих в файл.

0
ответ дан 30 November 2019 в 08:21
поделиться

Чтобы прочитать закодированный файл, вы можете просто заменить open на codecs.open .

fread = codecs.open('input.csv', 'r', 'utf-16')
1
ответ дан 30 November 2019 в 08:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: