Извлечение подстроки делает разрыв цикла for в python

58
8

У меня много проблем с текстовым файлом, который мне дал, что мне нужно разобрать. Это моя третья попытка разобрать его (я пробовал как C, так и php, которые, похоже, терпят неудачу по-разному).


У меня этот чрезвычайно простой код:


    import fileinput

for line in fileinput.input(['basin_stclair.txt']):
print line[0:64]


По какой-то причине код выходит после первой печати. ​​


Если я печатаю строки целиком, это никогда не останавливается, но линии все еще объединены. (Если я разрешаю только циклу для одной итерации, я получаю две строки (14 поплавков).


Текстовый файл выглядит следующим образом (несколько сотен строк, подобных этому, 7 поплавков):


1,749766 3,735660 0,294098 310,461737 0,000000 0,231367 0,230505


Когда я копирую весь текст в kate, он все перемешивается, и линии объединяются.


Текстовый файл был создан с использованием excell на машине Windows. (Я работаю над Linux-модулем).


Любые идеи?

спросил(а) 2011-03-10T21:21:00+03:00 9 лет, 7 месяцев назад
1
Решение
83

У вас есть проблема с символами новой строки в вашем файле. Попробуйте открыть файл с помощью поддержки универсальной новой строки Python:

for line in open('basin_stclair.txt', 'U'):
print line[0:64]

ответил(а) 2011-03-10T21:28:00+03:00 9 лет, 7 месяцев назад
59

Вы пытаетесь напечатать первые 64 строки? Если да, попробуйте что-то вроде этого:


i = 0
for line in fileinput.input(['basin_stclair.txt']):
print line[0:64]
if i > 63:
break
i = i + 1

Вы пытаетесь напечатать первые 64 символа каждой строки? Попробуйте что-то вроде этого:


for line in fileinput.input(['basin_stclair.txt']):
if len(line) > 63:
print line[0:64]

ответил(а) 2011-03-10T21:27:00+03:00 9 лет, 7 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема