调用下一个函数后file.txt内容消失
Posted
技术标签:
【中文标题】调用下一个函数后file.txt内容消失【英文标题】:file.txt content disappearing after calling the next function 【发布时间】:2019-05-23 19:11:16 【问题描述】:我试图让我的程序覆盖一个简单的 config.txt 文件。 这实际上是有效的:如果满足一个条件,它会在旧内容上写入新内容并继续进行下一个块。 但是,当下一个块调用我程序的另一个函数时,文件的内容就消失了:.txt 文件变为空。
我搜索过类似问题,但找不到任何帖子。 我调查了: How to search and replace text in a file using Python? Search and replace a line in a file in 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 文件现在是空的
我选择向您展示这段代码是因为我认为它是最易读的。 我尝试了“with”方法,它给了我相同的结果。 我还尝试写入一个新文件,删除默认文件并将新文件重命名为 config.txt ......同样的问题。 我不明白为什么文件在我关闭时变空。 没有错误消息,我的程序继续运行,但文件为空。 请注意,我在我的程序的另一个函数中使用了 open(config.txt, 'r'),目前只使用过一次。
【问题讨论】:
在我看来并没有什么问题。似乎main()
一定在做一些破坏config.txt
内容的事情。如果您将调用 main()
替换为其他内容,例如 print("Would call main() here")
,会发生什么?
您确定不会再次以写入模式('w')打开文件,对吧?
哦,好吧,我进行了搜索,碰巧我开始在 main() 中使用 open(config.txt) 进行编码,但几个小时前还没有完成……这真是个笨孩子。但是你结束了数小时的痛苦……谢谢。
【参考方案1】:
碰巧我在 main() 中编写了以下行并且没有关闭 config.txt:
config=open("config.txt","w+")
忘记了... 谢谢你们的提示。 我现在要躲到一个很黑的地方。
【讨论】:
以上是关于调用下一个函数后file.txt内容消失的主要内容,如果未能解决你的问题,请参考以下文章
用js实现点击按钮 显示div 然后两秒后消失 但是只能执行一次 怎么才能做到可以重复调用 求助