Разбор текста построчно в python - PullRequest
0 голосов
/ 13 февраля 2020

Я просто хочу, чтобы моя программа прочитала строку в моем файле, сделала что-то с текстом в строке, а затем перешла на следующую строку, пока все строки в файле не будут закончены.

Вот что у меня так далеко:

with open(str(filepath), r) as fp:
    for line in fp:
        rdline = fp.readline() 
        doSomething(rdline)

это не работает, однако. Как мне подойти к этому? Я не хочу преобразовывать все строки в словарь или список, так как я буду работать с файлами с большим количеством строк.

Ответы [ 3 ]

2 голосов
/ 13 февраля 2020

Попробуйте это:

with open('filepath') as infile:
  for row in infile:
    do_somthing(row.strip())

Пока

1 голос
/ 13 февраля 2020

Как я уже сказал в своем комментарии, rdline = fp.readline() не является необходимым, поскольку вы уже перебираете fp на вашем для l oop.

with open(filepath) as f:
    for line in f: 
        do_something(line)
0 голосов
/ 13 февраля 2020

Я думаю, что ошибка, появившаяся в вашем коде:

with open(str(filepath), 'r') as fp:
    lines = fp.readlines() 
    for line in lines:
        do_something(line)

, дает второй параметр открытой функции в виде строки.

(или)

Если размер файла большой, вы можете go при таком подходе

with open(str(filepath), 'r') as fp:
    line = fp.readline() 
    while line:
        do_something(line)
        line = fp.readline()
...