确定进程是否可以移动/删除文件的便携方式?

时间:2012-01-27 13:59:39

标签: python linux macos

什么是可移植的方法来确定Python进程是否可以移动/删除文件而不必须移动/删除相关文件?

使用案例:我想告知用户脚本在开始处理之前是否成功/失败移动/删除操作。

如果有一个仅适用于Linux的解决方案,我暂时还可以。

感谢。

更新:我了解 os.access 可以使用但仅限于真实的uid / gid。

2 个答案:

答案 0 :(得分:1)

打开文件进行追加工作?

try:
    open(filename,'a').close()

...并捕获任何表明失败的异常?

谨慎使用,我真的不确定不会做任何令人讨厌的错误。例如,至少暂时你已经锁定了文件,我不知道它会对二进制文件做什么。

答案 1 :(得分:0)

如果我没记错的话,在UNIX上需要满足三个条件:

  1. 用户可以写入包含原始文件的目录(删除或移动)
  2. 如果包含原始文件的目录设置了粘滞位,则原始文件应由用户拥有(用于删除或移动)
  3. 如果是移动,另外,用户可以写入应移动到的目录
  4. 在python中,条件1和3可以使用os.access进行测试,条件2可以使用os.stat herehere进行测试。

    更新:如果您想使用有效的UID,请使用os.geteuid()并解释stat结果以检查1和3。