чтение файлов на питоне - PullRequest
1 голос
/ 04 марта 2012

Мне нужно получить конкретный номер строки из файла, который я передаю в написанную мной программу на Python.Я знаю, что строка, которую я хочу, будет строкой 5, так есть ли способ, которым я могу просто взять строку 5, и мне не нужно перебирать файл?

Ответы [ 3 ]

3 голосов
/ 04 марта 2012

вы можете использовать linecache

import linecache
get = linecache.getline
print(get(path_of_file, number_of_line))
3 голосов
/ 04 марта 2012

Если вы знаете, сколько байтов у вас есть до интересующей вас строки, вы можете seek добраться до этой точки и прочитать строку.В противном случае «строка» не является конструкцией первого класса (это просто список символов, оканчивающихся символом, которому вы назначаете особое значение - символ новой строки).Чтобы найти эти новые строки, вы должны прочитать файл в.

На практике вы можете использовать метод readline, чтобы прочитать 5 строк, а затем прочитать вашу строку.

Почему вы пытаетесь это сделать?

0 голосов
/ 04 марта 2012

Я думаю, что следующее должно сделать:

line_number=4

# Avoid reading the whole file
f = open('path/to/my/file','r')
count=1
for i in f.readline():
    if count==line_number:
        print i
        break
    count+=1

# By reading the whole file
f = open('path/to/my/file','r')
lines = f.read().splitlines()
print lines[line_number-1]     # Index starts from 0

Это должно дать вам 4-ю строку в файле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...