调用下一个函数后,file.txt内容消失

时间:2019-05-23 19:11:16

标签: python-3.x file

我正在尝试让我的程序写一个简单的config.txt文件。 这实际上是有效的:如果满足一个条件,它将在旧内容上写入新内容,然后进入下一个块。 但是,当下一个块调用程序的另一个函数时,该文件的内容就会消失:.txt文件变为空。

我已经搜索了类似的问题,但是找不到任何帖子。 我调查了: How to search and replace text in a file using Python? Search and replace a line in a file in Python 并且让其中一些起作用,但总是遇到上述问题。

请谨慎对待,因为我是新手,这是我的第一个“ not Hello_world”程序,也是我的第一篇文章。谢谢:)

>>>默认config.txt文件的内容为'runco​​unt = 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文件的内容现在为'runco​​unt = 1'

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

>>> main()函数被称为...但是config.txt文件现在为空

我选择向您显示此代码,因为我认为它是最易读的。 我尝试了“ with”方法,它给了我相同的结果。 我还尝试写入新文件,删除默认文件,然后将新文件重命名为config.txt ...同样的问题。 我不知道为什么在关闭文件时文件变为空。 消息没有错误,我的程序继续运行,但是文件为空。 请注意,我在程序的另一个功能中仅使用过一次open(config.txt,'r')。

1 个答案:

答案 0 :(得分:0)

碰巧我在main()中编写了以下代码,但没有关闭config.txt:

config = open(“ config.txt”,“ w +”)

忘记了... 谢谢你们的提示。 我现在要藏在很暗的地方。