有什么可移植的方法可以确定Python进程是否可以移动/删除文件,而不必移动/删除有问题的文件?
用例:在开始处理之前,我想通知脚本的用户移动/删除操作是否成功/失败。
如果有一个只适用于Linux的解决方案,我暂时可以接受。
谢谢。
更新:我知道os.access可以使用,但仅限于真实的uid/gid。
打开文件进行追加工作吗?
try:
open(filename,'a').close()
并捕获任何指示失败的异常?
小心使用,我真的不确定它不会因为错误而造成任何恶劣的后果。例如,至少暂时锁定了文件,我不知道这会对二进制文件产生什么影响。
如果我没记错,UNIXes上需要满足三个条件:
- 用户可以写入包含原始文件的目录(用于删除或移动)
- 如果包含原始文件的目录设置了粘性位,则原始文件应由用户所有(用于删除或移动)
- 此外,在移动的情况下,用户可以写入应该将其移动到的目录
在python中,条件1和3可以用os.access测试,条件2可以用os.stat测试。
更新:如果要使用有效的UID,请使用os.geteuid()
并解释stat
结果以检查1和3。