Это происходит потому, что вы на самом деле не открываете один и тот же файл. Вы запрашиваете у пользователя ввод данных, чтобы указать местоположение файла для чтения этого файла, но если он решит «добавить» файл, вы можете добавить его к файлу, который не имеет ничего общего с указанным файлом. Вы предлагаете пользователю добавить файл с именем "FileName"
. Вы жестко закодировали эту строку как местоположение файла, когда пользователь выбирает «добавить».
Здесь FileName
- это , а не строка, представляющая местоположение файла. Это объект, представляющий файл.
FileName = open(input("Enter file name: "))
Пользователь попросил ввести строку в путь к файлу, но вы не сохранили это строковое значение. Вы использовали это значение для open()
файла для чтения.
Здесь вы открываете файл с именем "FileName"
в том месте, где, вероятно, находится каталог python, поскольку здесь нет видимого пути .
with open("FileName","a") as file:
file.write(Append)
Go посмотрите в своем начальном каталоге и посмотрите, создали ли вы новый файл с именем "FileName"
.
Имейте в виду, если вы открываете файл с помощью mode="a"
, и этот файл не существует, будет создан новый файл. https://docs.python.org/3/library/functions.html#open
Я также хотел бы использовать этот момент, чтобы сообщить вам о PEP8, Python руководстве по стилю. Это не закон, но следование ему поможет другим Python программистам помочь вам быстрее.
С учетом вышесказанного рассмотрите возможность создания своего фрагмента кода, похожего на следующий код:
filename = input("Enter file name: ")
decision = input("Do you want to read/delete/append to the file?: ")
if decision == "read":
with open(filename) as file:
print(file.read())
elif decision == "append":
append = input("Type what you want to add: ")
with open(filename, "a") as file:
file.write(append)