Как считать строку из txt файла python и использовать ее в качестве пути до файла
Есть такой код.
В переменную save_file присваивается путь до файла для сохранения данных.
Данный путь в виде строки сохраняется в файл path.txt
При попытке считать строку с путем до файла с данными и чтобы использовать ее повторно, появляется ошибка:
TypeError: expected str, bytes or os.PathLike object, not TextIOWrapper
В чем заключается проблема?
def choose_path():
global path
global save_file
save_dir = input('Использовать указанный в прошлый раз файл [yes/да] или указать/создать новый [no/нет]?')
if save_dir == 'no' or save_dir == 'n' or save_dir == 'nah' or save_dir == 'nope' or \
save_dir == 'нет' or save_dir == 'не' or save_dir == 'н' or save_dir == 'неа':
save_file = input('Укажите путь для сохранения файла либо путь до существующего файла: ')
path = open("path.txt", 'w')
path.write(save_file)
pass_type_request()
elif save_dir == 'yes' or save_dir == 'ye' or save_dir == 'y' or \
save_dir == 'да' or save_dir == 'д' or save_dir == 'da' or save_dir == 'd':
path = open("path.txt", 'r')
save_file = path
pass_type_request()
Ответы (1 шт):
Автор решения: MarianD
→ Ссылка
path = open("path.txt", 'r')
save_file = path
Вы только откроили файл, а не читали из его.
Значит, в переменной save_file не будет содержание файла, т.е. текст, а самый файл, т.е. объект типа TextIOWrapper.
Правильно:
with open("path.txt") as inp: # Не надо 'r', оно стандартно (но может быть)
save_file = inp.readline().strip()