2010-07-07 2 views
1

Когда вы используете функцию fileName.readlines() в Python, есть ли символ для конца файла, который включен в список?Чтение файлов в список строк в Python

Например, если файл считывается в список строк, а последняя строка - «Конец», будет ли в списке другое место с символом, указывающим конец файла?

Спасибо.

+1

как вам трудно себя проверить? – SilentGhost

+1

Возможно, вам стоит сделать шаг назад и проверить, как списки работают на питоне в первую очередь. В списке нет необходимости содержать элемент, указывающий, что вы находитесь в конце. – jsbueno

ответ

0

Он просто возвращает список, содержащий каждую строку - в списке нет элемента «EOF».

5

Нет, список содержит один элемент для каждой строки в файле.

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

lines = infile.readlines() 
for line in lines: 
    # Do something with this line 
    process(line) 

Python имеет более короткий путь достижения этого, что позволяет избежать чтения всего файла в память сразу

for line in infile: 
    # Do something with this line 
    process(line) 

Если вам просто нужна последняя строка файла

lines = infile.readlines() 
last_line = lines[-1] 

Почему вы думаете, что у вас есть d специальный символ в конце?

1

Список, возвращенный .readlines(), как и любой другой список Python, не имеет маркера «end» - assumin, например. вы начинаете с L = myfile.readlines(), вы можете увидеть, сколько позиций L имеет с len(L), получите последний с L[-1], обведите все пункты один за другим с помощью for item in L: и т. д. ... снова - как и любой другой список.

Если по какой-то своеобразной причине вы хотите, после последней строки, какого-то специального значения «дозорного», вы можете, например, сделать L.append(''), чтобы добавить именно такой дозорный элемент или маркер - пустая строка никогда не будет значение любой другой строки (поскольку каждый элемент представляет собой полную строку, включая конечную '\n', поэтому она никогда не будет пустой строкой!).

Вы можете использовать другие произвольные маркеры, такие как None, но часто это возможно, когда это возможно [[и, очевидно, это возможно в этом случае, как я только что показал]], если контролер имеет точно такой же тип как любой другой предмет. Это зависит от того, какую обработку вы выполняете, которая нуждается в сквозном «дозорном» (я не буду предполагать, потому что вы не даете нам никаких указаний, и только относительно редкие проблемы лучше всего разрешены таким образом на Python; -), но почти в каждом возможном случае дозорного дознавателя '' будет в порядке.

Смежные вопросы