对于python 文件操作锁和异常判断的一些疑问。

if not os.path.exists(path):
    os.makedirs(path)
    os.chmod(path,stat.S_IRUSR|stat.S_IXUSR)

这样的代码, 在makedirs有必要加锁吗? 另外为一些,有必要加异常判断吗。 貌似不肯能出现异常,如果加了异常判断太多。不加异常判断合适吗?

  with open( "%s/%s.%s"%(path,md5,filetype),"rd+") as f:
       f.write("123456789")

我知道上面代码 会调用 f.close(), 但是我想知道这里有没有自动加锁
还有 临时文件 templefile 里面方法是进程安全的吗

阅读 2.9k
1 个回答

没看明白为什么exist还要再makedirs?
with 是针对上下文管理器,逻辑中包含了try,会调用对象的__enter__方法返回给as后面的变量名即你这里的f然后最后会调用__exit__, 文件并不是默认加锁保护的。正常情况下你也可以同时多次打开一个记事本啊。

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