содержимое file.txt исчезает после вызова следующей функции - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь заставить свою программу записать поверх простого файла config.txt. Что на самом деле работает: оно записывает новый контент поверх старого, если выполняется одно условие, и переходит к следующему блоку. Однако, когда следующий блок вызывает другую функцию моей программы, содержимое файла просто исчезает: файл .txt становится пустым.

Я искал похожие проблемы, но не смог найти ни одной записи. Я посмотрел в: Как искать и заменять текст в файле с помощью Python? Поиск и замена строки в файле в Python И заставил некоторых из них работать, но всегда сталкивался с проблемой выше.

Пожалуйста, будьте осторожны, так как я новичок, и это моя первая программа "не Hello_world" и мой первый пост. Спасибо:)

>>> Содержимое файла config.txt по умолчанию: 'runcount = 0'

    def alias(confirmation):

        ###First block###
        if confirmation.lower()=='yes':
            print("...")

            config=open('config.txt','r')
            data=config.read()
            config.close()

            newdata=data.replace('runcount=0','runcount=1')

            config=open('config.txt','w')
            config.write(newdata)
            config.close()

            confirmation2=input()

>>> Содержимое файла config.txt теперь 'runcount = 1'

            ###Second block###
            if confirmation2.lower()=='yes':
                print("...")
                return main()
            else:
                ...

>>> Функция main () вызывается ... Однако файл config.txt теперь пуст

Я решил показать вам этот код, потому что я думаю, что он наиболее читаемый. Я попробовал метод «с», который дает мне те же результаты. Я также попытался записать в новый файл, удалить по умолчанию и переименовать новый в config.txt ... та же проблема. Я не понимаю, почему файл становится пустым, когда я закрыл его. Нет сообщений об ошибках, моя программа просто запускается, но файл пуст. Обратите внимание, что я использовал open (config.txt, 'r') в другой функции моей программы, но только один раз.

1 Ответ

0 голосов
/ 23 мая 2019

Бывает, что я закодировал следующую строку в main () и не закрыл config.txt:

config = open ("config.txt", "w +")

Изабыл об этом ... Спасибо, ребята за подсказку.Я собираюсь спрятаться где-то очень темно сейчас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...