Почему функция Python read() не работает?

#python #function

Вопрос:

Я хочу написать программу напоминаний с использованием python. Но по какой-то причине, когда я читаю файл, он ничего не возвращает. Вот мой код,

 print ("(1)Add something to listn(2)Read my lists")
option = input ("Please select an option: ")
myFile = open ("Reminder.txt", "a ")
if option == '1':
    ask = input ("What do you want to remember: ")
    myFile.write (ask   "n")
    myFile.close()
    print ("Successfully added in database")
elif option == '2':
    AllFileContents = myFile.read()
    print (AllFileContents)
else:
    print ("Please select an existing option!")
 

И это результат, который я получаю после добавления чего-либо в список(я использую microsoft visual studio):

https://i.stack.imgur.com/DuS9W.png

Пожалуйста, помогите.

Комментарии:

1. Вы открываетесь в a режиме… курсор будет находиться в конце файла

2. Похоже, вы должны открыть файл после проверки option от пользователя.

3. значение различных режимов

4. Итак, что мне делать…?

Ответ №1:

Попробуйте использовать seek

 print ("(1)Add something to listn(2)Read my lists")
option = input ("Please select an option: ")
myFile = open ("Reminder.txt", "a ")
if option == '1':
    ask = input ("What do you want to remember: ")
    myFile.write (ask   "n")
    myFile.close()
    print ("Successfully added in database")
elif option == '2':
    myFile.seek(0)
    AllFileContents = myFile.read()
    print (AllFileContents)
else:
    print ("Please select an existing option!")
 

Ссылка — поиск

seek(0) возвращает курсор к первой части файла , чтобы вы могли прочитать файл с самого начала (в основном весь файл).

Ответ №2:

Используйте функцию open() без режима . Режим помещает курсор в конец файла.

Комментарии:

1. Тогда в каком режиме я должен поставить…?

2. Я получаю сообщение об ошибке, недоступное для записи

3. Поместите myFile = open (...) в if...else... операторы, т. е. поместите myFile = open ("Reminder.txt", "a ") в if option == '1': оператор, и поместите myFile = open ("Reminder.txt", "r") ( "r" средство, открытое в режиме «чтение») в elif option == '2': оператор.