Сделать метод readline для Python распознавать как варианты конца строки?

Я пишу файл Python, который нужно читать в нескольких файлах разных типов. Я читаю файлы в f = open("file.txt", "r") последовательности с традиционными for line in f после использования f = open("file.txt", "r") .

Кажется, что это не работает для всех файлов. Я предполагаю, что некоторые файлы заканчиваются разными кодировками (например, \ r \ n против просто \ r). Я могу прочитать весь файл и разбить строку на \ r, но это очень дорого, и я бы предпочел. Есть ли способ сделать метод readline для Python распознавать как варианты конца строки?

2 Solutions collect form web for “Сделать метод readline для Python распознавать как варианты конца строки?”

Используйте универсальную поддержку новой строки – см. http://docs.python.org/library/functions.html#open

В дополнение к стандартным режимам fopen () может быть «U» или «rU». Python обычно создается с поддержкой универсальной новой строки; снабжение «U» открывает файл в виде текстового файла, но строки могут быть прерваны одним из следующих: соглашение окончательной строки Unix '\ n', соглашение Macintosh '\ r' или соглашение Windows '\ г \ п». Все эти внешние представления рассматриваются как «\ n» в программе Python. Если Python построен без универсальной поддержки новой строки, режим с «U» совпадает с обычным текстовым режимом. Обратите внимание, что открытые таким образом файловые объекты также имеют атрибут newlines, который имеет значение None (если новые символы еще не были просмотрены), '\ n', '\ r', '\ r \ n' или кортеж, содержащий все вид новых линий.

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

 def readlines(f): line = [] while True: s = f.read(1) if len(s) == 0: if len(line) > 0: yield line return if s in ('\r','\n'): if len(line) > 0: yield line line = [] else: line.append(s) for line in readlines(yourfile): # ... 
  • Самый легкий способ создания случайной строки и случайного шестнадцатеричного числа
  • Python пропускает последний элемент во время итерации списка, используя для цикла
  • доступ к нескольким значениям по 1 дублирующему ключу
  • Как заполнить переменные WTForm?
  • Изменение порядка отображения тегов в таблице (Google App Engine-Python)
  • python: выход из двух циклов
  • Самый простой способ чтения / записи содержимого файла в Python
  • Поиск значения индекса наименьшего числа в списке?
  •  
    Interesting Posts for Van-Lav

    Как вернуть пользовательский JSON в Django REST Framework

    Python, веб-страница, похоже, не видит ВСЕ мои данные и не дает правильного ответа?

    Извлечь столбец из CSV-файла по имени

    python: raise child_exception, OSError: Нет такого файла или каталога

    почему PyObject * может указывать на любой объект в python?

    Как вычислить кумулятивное нормальное распределение в Python

    Как у меня есть два поля для выбора?

    несколько экземпляров django в одном домене

    Python: sys.excepthook и регистрация неперехваченных исключений через несколько модулей

    Python – у кого-нибудь есть памятный декоратор, который может обрабатывать нераскрывающиеся аргументы?

    OpenCV Kalman Filter python

    Как найти медиану на графике KDE?

    Как создать простой клиент Google Talk с использованием библиотеки Python Twisted Words?

    Проверка Python для Completed и failed Task Планировщик Windows

    Как я могу прокручивать данные для нескольких страниц на веб-сайте с помощью python и beautifulsoup4

    Python - лучший язык программирования в мире.