Почему переменная content возвращает один символ D?

Вот что лежит в текстовике

D:/Dev program/регистрация и настройки тест/application.py

Вот код:

index=1
def read_path(index):
    file=open('setAphinePath.txt','r')
    content=file.readline(index)
    print(content)
    file.close()
    return content

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

Автор решения: Rafael Seidalinov

У вас в file.readline() с какой-то целью передается index который равен 1, при передаче параметра в readline() он будет читать только указанное в параметре количество байт.

→ Ссылка
Автор решения: MarianD

Вы наверно хотели читать строку файла с номером определённым в параметре index.

Строки файла определены символом '\n' (переход на новую строку) в конце каждой строки.

Метод .readline() читает очередную строку (начиная с первой строки файла).

Параметр в методе .readline() может только прекратить ввод строки после заданного количества символов (и вы задали один).

Нужно это сделать по другому — читать и пропускать строки с начала файла, пока не встречается строка с номером в параметре index. Например так:

def read_path(index):
    file=open('setAphinePath.txt')    # 'r' не нужно
    for __ in range(index - 1):       # __  значит, что имя переменной не важно
        file.readline()               # читаем, но не сохраняем
    content = file.readline()         # теперь уже строку сохраним - в переменной content
    file.close()
    # print(content)                  # это не нужно, но может выть для тестирования
    return content

Другой подход вы можете перенять здесь.

Примечание:

Я предполагал, что вы номеруете строки файла с 1.

→ Ссылка
Автор решения: S. Nick

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

index = 1

def read_path(index):    
    with open("setAphinePath.txt") as f:
        while index:
            content = f.readline()
            index -= 1
        return content

print(read_path(index)) 
print(read_path(2))
print(read_path(999))  
→ Ссылка