Ваша идея создания отчетов о прогрессе из вашего кода хороша, особенно на начальных этапах.Но, похоже, вы не совсем понимаете разницу между
print(open(new_file_name, "w"))
, что на самом деле делает ваш код, и
print(f'open("{new_file_name}", "w")')
Я полагаю, что вторым из них является то, что вы имели в видучтобы сделать: он печатает
open("myfile.txt", "w")
, но ваш реальный код делает (1) создание объекта открытого файла для записи, затем (2) выводит его тип и место в памяти на экран и, наконец, (3) выбросить .
Итак, первое исправление - это отменить вызовы print()
или, по крайней мере, уменьшить их до print("step 1")
и т. Д., Пока вы не поймете, как это сделать правильно.,
Второе исправление - не отвечать на выбор команды «Создать», пытаясь прочитать файл.Если пользователь создает файл, он явно не заинтересован в содержимом предыдущей версии.Ваш код отвечает на чтением файла, и это мне кажется задом наперед, и в целом программы должны работать так, как обычный пользователь, например я, будет думать интуитивно.Вот правильный способ сделать бит создания:
choice = input("Open / Create file: ")
if choice == 'Create' or choice == 'create':
new_file_name = input("Create a name for the file: ")
with open(new_file_name, "w") as file2:
file2.write("This is stuff to go into the created file.\n")
else:
...
. Он запрашивает имя файла, открывает его для записи и затем записывает в него некоторые данные.