不要保存空文件
我用 f = open('file.txt', 'w')
创建了一个新的文本文件。然后,当我准备写东西的时候,出现了问题,我需要退出,但实际上什么都没写。
不过,这个文件还是被创建了,只是里面是空的。有没有办法在什么都不写的情况下不保存这个文件,还是说我必须在出问题的时候手动删除它呢?
2 个回答
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"
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
文件。