【发布时间】:2011-05-10 10:54:30
【问题描述】:
这是我目前所拥有的:
import os.path as op
for d in map(chr, range(98, 123)): #drives b-z
if not op.isdir(d + ':/'): continue
问题是它在Windows中弹出“无磁盘”错误框:
maya.exe - 没有磁盘:没有磁盘 驱动器。请插入磁盘 drive \Device\Harddisk1\DR1 [取消,再试一次,继续]
我无法捕获异常,因为它实际上并没有引发 Python 错误。
显然,这只发生在分配了一个字母但没有插入驱动器的可移动驱动器上。
有没有办法在不明确告诉脚本跳过哪个驱动器的情况下解决这个问题?
在我的场景中,我在学校实验室,驱动器号会根据我所在的实验室计算机而变化。另外,我访问磁盘管理的安全权限为零。
【问题讨论】:
-
顺便说一下,避免使用地图:
[chr(c) for c in xrange(98, 123)]。说 xrange(ord('b'), ord('z'))` 也可以说更清楚。另外,不要跳过“A”;没有人说它必须是软盘驱动器。我总是禁用未使用的软盘控制器,从而释放 A:. -
很棒的提示!我刚才用你描述的 ord() 方法实现了它。效果很好!
-
我只是注意到我必须输入
ord('z') + 1才能将其一直运行到 z。
标签: python windows error-handling path disk