Python: укажите формат конца строки для чтения файлов
Я пишу скрипт Python, который обрабатывает текстовый файл. Я ожидаю обработки файлов, созданных разными людьми, работающих под разными операционными системами. Есть ли хороший способ выяснить, какая ОС создала текстовый файл, и указать соглашение о конце строки, чтобы сделать анализ построчно тривиальным?
4 ответа
Решение
Используйте универсальный режим новой строки при открытии файла.
with open('input.txt', 'rU') as fp:
for line in fp:
print line
splitlines()
обрабатывает различные разделители строк:
>>> 'foo\nbar'.splitlines()
['foo', 'bar']
>>> 'foo\rbar'.splitlines()
['foo', 'bar']
>>> 'foo\r\nbar'.splitlines()
['foo', 'bar']
Вы хотите использовать file.readlines()
, который возвращает список, содержащий строки в файле.
lines = open('info.txt').readlines()
for line in lines:
print line
Смотрите документацию по объектам файлов Python.
Если вас не волнует окончание пробела, тогда:
for line in [l.rstrip() for l in open('test.py').read().split('\n')]:
print line
'\ n' позаботится о Linux / Mac, а rstrip сожрет любую '\r' из Windows.