Python:该进程无法访问该文件,因为它正在被另一个进程使用

新手上路,请多包涵
try:
    masterpath = os.path.join(path, "master.txt")
    with open(masterpath, 'r') as f:
        s = f.read()
    f.close()
    exec(s)
    with open(masterpath, 'w') as g:
        g.truncate()
    g.close()
    os.remove(masterpath)

在这里我想读取.txt文件中的内容,然后擦除内容并删除它。但它总是显示它无法删除它,因为“该进程无法访问该文件,因为它正在被另一个进程使用”。

其实我需要的是删除.txt文件,但有时不能立即删除,所以我先擦掉内容,以防再次读取。那么有没有什么好的方法可以读取.txt文件中的内容,然后尽快稳定地删除这个文件呢?

原文由 Andy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
1 个回答

删除不必要的 close() 语句开始 - 就像提到的@grapes - 你为什么要截断你正在删除的内容?删除它…

 try:
    masterpath = os.path.join(path, "master.txt")
    with open(masterpath, 'r') as f:
        s = f.read()
    exec(s)
except Error as e:
    print(e)
else:
    os.remove(masterpath)

仅供参考,如果您不控制所述文件的内容,则执行文件内容是一种错误的形式。

另外的选择:

 masterpath = os.path.join(path, "master.txt")
with open(masterpath, 'r') as f:
    try:
        s = f.read()
    except Error as e:
        print(e)
    else:
        exec(s)
os.remove(masterpath)

原文由 Sina Khelil 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题