【发布时间】:2022-01-06 23:19:32
【问题描述】:
我正在将应用程序迁移到 python3,但有些遗留系统无法使用 python2 升级。
我的应用程序需要更新缓存文件,但如果由于某种原因启动应用程序的用户无法读取/更新缓存。没什么大不了的,他可以再次查询数据库而不是使用缓存。
因此,我想通过 python2 上的权限被拒绝异常,它是一个 OSError [Errno 13]。 在 python3 上我使用 PermissionError 所以没关系。我假设这个异常只会捕获 errno 13。
这就是我在 python3 上所拥有的
for filename in os.listdir(cache_dir):
try:
if filename.endswith('.cache'):
os.remove(os.path.join(cache_dir, filename))
Except PermissionError:
pass
Except OSError:
#handle all other errors
我怎样才能在 python2 上模仿相同的东西,以便只有 Errno 13 是 passed 而不是其他任何东西?例如,如果权限被拒绝,我可以通过,但如果 fs 是只读的或磁盘已满,则不能通过。
【问题讨论】: