如何让python3 file.close释放文件锁?

时间:2014-07-27 20:43:17

标签: python file-io

Python3 file.close显然不会放弃文件,因此Win7命令无法使用它。

即便:

import os, time
hfile = "Positions.htm"
hf = open(hfile, "w")
hf.write(str(buf))
hf.close
time.sleep(2) # give it enough time to do the close
os.system(hfile) # run the html file in the default browser

这会导致来自Win7的错误消息,说它无法访问该文件,因为它当前正在使用中。但是,在python程序终止后很容易访问它。

是的,我知道这里已经提出了类似的问题,但我没有看到一个给出一般答案的问题。

1 个答案:

答案 0 :(得分:3)

您忘了拨打close()

hf.close   # wrong
hf.close() # right

你可以看到hm.close只是给你一个绑定方法而不调用它:

>>> hm.close
<built-in method close of _io.TextIOWrapper object at 0x7ffe8ec74b40>

正如Padriac Cunning ham指出的那样,如果你只使用with语法,则不需要这样做:

with open(hfile, 'w') as hf:
    hf.write(str(buf))
# Automatically closed