Python脚本在Windows中以什么用户身份运行?
我想用Python删除一些文件夹,但遇到了权限错误。我觉得可能是Python的用户账户没有权限?
WindowsError: [Error 5] Access is denied: 'path'
这是我运行脚本时得到的错误信息。
我试过
shutil.rmtree
os.remove
os.rmdir
但它们都返回了相同的错误。
7 个回答
2
这些脚本没有特别的用户,它们只是以当前登录的用户身份运行,也就是执行脚本的那个用户。
你有没有试着检查一下:
- 你要删除的路径是否有效?还有
- 这个路径下有没有被锁定的文件?
2
我从来没有用过Python,但我想它应该是以执行这个脚本的用户身份来运行的。
87
我们在Windows上删除文件和文件夹时遇到了一些问题,即使我们刚复制过这些文件,如果它们被设置为“只读”,也无法删除。shutil.rmtree()
这个函数可以帮助你处理这种情况,它提供了一些异常处理的选项。你可以调用这个函数,并提供一个异常处理器,像这样:
import errno, os, stat, shutil
def handleRemoveReadonly(func, path, exc):
excvalue = exc[1]
if func in (os.rmdir, os.remove) and excvalue.errno == errno.EACCES:
os.chmod(path, stat.S_IRWXU| stat.S_IRWXG| stat.S_IRWXO) # 0777
func(path)
else:
raise
shutil.rmtree(filename, ignore_errors=False, onerror=handleRemoveReadonly)
你可以试试看这个方法。