Python读/写文件没有关闭

时间:2013-05-12 01:39:59

标签: python file

有时当我打开一个文件以便用Python阅读或写作时

f = open('workfile', 'r')

f = open('workfile', 'w')

我读/写文件,然后最后忘记做f.close()。有没有办法在完成所有读/写操作后或代码完成处理后自动关闭?

3 个答案:

答案 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()