Почему переменная 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 шт):
У вас в file.readline() с какой-то целью передается index который равен 1, при передаче параметра в readline() он будет читать только указанное в параметре количество байт.
Вы наверно хотели читать строку файла с номером определённым в параметре 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.
Попробуйте так:
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))