Как вывести текст с определенной строки? Python

Есть код:

import sys

def read_prises(arg):
    with open('prises.txt', 'r', encoding='utf-8') as p:
        p_lines = p.read()
        if len(arg) == 1: 
            print(p_lines)
        if len(arg) == 2:
            for i in range(int(arg[1])):
                print(p.readline(i))
            #Проблема вот в этом if-условии. Это все, что мне удалось сделать.

if __name__ == '__main__':
    read_prises(sys.argv)

Он должен возвращать текст из определенного файла.

Если в функцию будет передан аргумент в виде числа, то это число будет соответствовать номеру строки, с которой нужно будет печатать текст.

Я не знаю как это сделать. Все попытки приводили к тому, что выводилась пустота.

Подскажите, пожалуйста, как это реализовать!


Ответы (1 шт):

Автор решения: S. Nick

Попробуйте так:

main.py

import sys

def read_prises(arg):
    #print(f'arg = {arg}') 
    if len(arg) < 2:
        return
    
    num_line = int(arg[1])
    
    with open('prises.txt', 'r', encoding='utf-8') as p:
        p_lines = p.read().split('\n')
        if num_line <= len(p_lines):
            print(f'Строка номер:{num_line} \n{p_lines[num_line]}' ) 

if __name__ == '__main__':
    read_prises(sys.argv)

prises.txt

Он должен возвращать текст из определенного файла.
Если в функцию будет передан аргумент в виде числа, 
то это число будет соответствовать номеру строки, 
с которой нужно будет печатать текст. 
Я не знаю как это сделать. 
Все попытки приводили к тому, что выводилась пустота.
Подскажите, пожалуйста, как это реализовать!

введите сюда описание изображения

→ Ссылка