Чтение только определенных строк - PullRequest
182 голосов
/ 17 января 2010

Я использую цикл for для чтения файла, но я хочу читать только определенные строки, скажем строки № 26 и № 30. Есть ли встроенная функция для достижения этой цели?

Спасибо

Ответы [ 25 ]

1 голос
/ 30 сентября 2018

Для печати строки № 3,

line_number = 3

with open(filename,"r") as file:
current_line = 1
for line in file:
    if current_line == line_number:
        print(file.readline())
        break
    current_line += 1

Оригинальный автор: Фрэнк Хофманн

1 голос
/ 21 февраля 2016

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

inputFile = open("lineNumbers.txt", "r")
lines = inputFile.readlines()
print (lines[0])
print (lines[2])
0 голосов
/ 22 августа 2018

Для печати нужной строки. Для печати строки выше / ниже требуемой строки.

def dline(file,no,add_sub=0):
    tf=open(file)
    for sno,line in enumerate(tf):
        if sno==no-1+add_sub:
         print(line)
    tf.close()

execute ----> dline ("D: \ dummy.txt", 6) т.е. dline ("путь к файлу", номер_строки, если вы хотите, чтобы верхняя строка искомой строки давала 1 для нижнего -1, это необязательно значение по умолчанию будет принято 0)

0 голосов
/ 17 января 2010
f = open(filename, 'r')
totalLines = len(f.readlines())
f.close()
f = open(filename, 'r')

lineno = 1
while lineno < totalLines:
    line = f.readline()

    if lineno == 26:
        doLine26Commmand(line)

    elif lineno == 30:
        doLine30Commmand(line)

    lineno += 1
f.close()
0 голосов
/ 10 апреля 2015

Я думаю, что это будет работать

 open_file1 = open("E:\\test.txt",'r')
 read_it1 = open_file1.read()
 myline1 = []
 for line1 in read_it1.splitlines():
 myline1.append(line1)
 print myline1[0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...