如何在不保存Python文件的情况下退出

时间:2014-12-09 02:49:07

标签: python

我是python的新手,直到现在只写了几个程序来帮助我的工作(我是一个系统管理员)。我现在正在编写这个脚本,它会将MySQL查询的输出写入文件。在中间循环中,我想检查一个额外的条件,如果条件不匹配,我想关闭我写的文件,而不保存已经写入文件的内容。喜欢'退出而不保存'。我写了这个简单的代码,看看是否没有关闭文件,close()将退出而不保存,但它在我运行并退出此代码后创建带有内容的文件。那么,Python中有没有合法的方法来退出文件而不保存?

#/usr/bin/python
fo=open('tempfile.txt','a')
fo.write('This content\n')

P.S: - Python版本是2.4.3(抱歉,无法升级)

4 个答案:

答案 0 :(得分:4)

编程中没有这样的概念。

对于绝大多数编程语言,write命令将尝试将数据直接放入文件中。这可能会或可能不会因各种原因立即发生,因此许多语言也引入了flush的概念,这将保证您的数据被写入文件

您要做的是将所有数据写入一个巨大的缓冲区(字符串),然后有条件地写入或跳过写入文件。

答案 1 :(得分:4)

使用tempfile模块创建临时文件,然后如果需要保存,可以使用shutil.copyfileobj显式创建。

请参阅Quick way to save a python TempFile?

请注意,这只是在您绝对需要临时文件(大量数据等)的情况下;如果您的内容很小,那么只需使用字符串缓冲区,只有在需要时才编写它是一种更好的方法。

答案 2 :(得分:0)

最安全的方法是在您知道要保存文件之前不要写入,甚至打开文件。例如,您可以保存最终写入字符串或列表的字符串,这样您就可以在决定之后编写它们。

答案 3 :(得分:0)

打开文件前检查条件:

#/usr/bin/python

if condition():

    fo=open('tempfile.txt','a')
    fo.write('This content\n')