不保存空文件

时间:2014-04-09 17:36:59

标签: python

我使用f = open('file.txt', 'w')创建了一个新的文本文件。然后,当我开始写东西时,有一个问题,我需要退出而不实际写任何东西。

但是,仍然会创建该文件,但该文件为空。有没有办法保存文件,以防万一没有写入文件,或者我必须明确删除它以防出现问题?

2 个答案:

答案 0 :(得分:1)

您可以使用atexit来模拟此行为,但某处可能有更好的方法。

import atexit

def safety_trigger():
    try:
        os.remove(FILENAME)
    except FileNotFoundError:
        pass

atexit.register(safety_trigger)

with open(FILENAME,'w') as f:
    # do your
    # file operations
    atexit.unregister(safety_trigger)

这样,当您的脚本启动时,您将其设置为在结束时自动删除FILENAME。完成写入文件后,您告诉脚本不要在结束时自动删除FILENAME

答案 1 :(得分:0)

您可以简单地准备首先写入的信息,并且只执行保存,如果它通过准备完成而没有任何障碍。

info_to_write = ""
try:

    info_to_write += "something!"
    # etc...

    if something_went_wrong:
        raise Exception
    with open("file.txt","w") as f:
        f.write(info_to_write)
catch:
    print "Nothing written, no file created"