Чтение строк за пределами SUB в Python

Вопрос с новичком. В Python 2.7.2. У меня есть проблема с чтением текстовых файлов, которые случайно содержат некоторые управляющие символы. В частности, цикл

for line in f

будет прекращаться без каких-либо предупреждений или ошибок, как только он встретится с линией, содержащей символ SUB (шестнадцатеричный код ascii 1a). При использовании f.readlines() результат будет таким же. По сути, что касается Python, файл завершается сразу же после появления первого символа SUB , а line назначенная последним, – это строка до этого символа.

Есть ли способ читать дальше такого персонажа и / или выдавать предупреждение при встрече с ним?

2 Solutions collect form web for “Чтение строк за пределами SUB в Python”

В системах Windows 0x1a является 0x1a конца файла. Вам нужно открыть файл в двоичном режиме, чтобы пройти мимо него:

 f = open(filename, 'rb') 

Недостатком является то, что вы потеряете линейный характер и должны сами разбить линии:

 lines = f.read().split('\r\n') # assuming Windows line endings 

Попробуйте открыть файл в двоичном режиме:

 f = open(filename, 'rb') 
  • Кодирование кода кодирования Unicode Python не в диапазоне <128> с знаком Euro
  • Скрипт для преобразования символов ASCII в нотацию Unicode «<Uxxx>»
  • Python - строка кодирования - шведские буквы
  • UnicodeEncodeError: кодек ascii не может кодировать символ при попытке HTTP POST в Python
  • Где находится «лучшая ASCII Python для этой Unicode»?
  • Как преобразовать формат файла из Unicode в ASCII с помощью Python?
  • Как удалить расширенный ascii с помощью python?
  • UnicodeEncodeError: кодек ascii не может кодировать символ по специальному имени
  • Python - лучший язык программирования в мире.