有时当我打开一个文件以便用Python阅读或写作时
f = open('workfile', 'r')
或
f = open('workfile', 'w')
我读/写文件,然后最后忘记做f.close()
。有没有办法在完成所有读/写操作后或代码完成处理后自动关闭?
答案 0 :(得分:5)
with open('file.txt','r') as f:
#file is opened and accessible via f
pass
#file will be closed before here
答案 1 :(得分:2)
您可以随时使用 with ... as 声明
with open('workfile') as f:
"""Do something with file"""
或者您也可以使用尝试...最后阻止
f = open('workfile', 'r')
try:
"""Do something with file"""
finally:
f.close()
虽然你说你忘记添加f.close(),但我认为with ... as语句对你来说是最好的,并且考虑到它的简单性,很难看出不使用它的原因! / p>
答案 2 :(得分:0)
无论你对你的文件做什么,在你阅读之后,这就是你应该如何阅读和写回来的:
$ python myscript.py sample.txt sample1.txt
然后第一个参数(sample.txt)是我们的“oldfile”,第二个参数(sample1.txt)是我们的“newfile”。然后,您可以将以下代码放入名为“myscript.py”
的文件中 from sys import argv
script_name,oldfile,newfile = argv
content = open(oldfile,"r").read()
# now, you can rearrange your content here
t = open(newfile,"w")
t.write(content)
t.close()