我正在尝试编写一个python脚本(我是一个新手),它将在Windows上搜索每个连接驱动器的根目录中的密钥文件,然后返回驱动器号它将变量设置为驱动器号。使用Python查找驱动器号(Windows)
目前我有:
import os
if os.path.exists('A:\\File.ID'):
USBPATH='A:\\'
print('USB mounted to', USBPATH)
if os.path.exists('B:\\File.ID'):
USBPATH='B:\\'
print('USB mounted to', USBPATH)
if os.path.exists('C:\\File.ID'):
- 再复发的从A到Z每个盘符自然,这将是很多打出来,我只是想知道如果有一个变通方法,以保持我代码整洁且尽可能少(或者这是唯一的方式?)。
此外,有没有办法让它打印错误,如果没有找到驱动器(IE说,请插入你的USB),然后返回到开始/循环?类似于
print('Please plug in our USB drive')
return-to-start
有点像GOTO命令提示符命令吗?
编辑:
对于患有今后发生类似的询问,这里的解决方案:
from string import ascii_uppercase
import os
def FETCH_USBPATH():
for USBPATH in ascii_uppercase:
if os.path.exists('%s:\\File.ID' % SVPATH):
USBPATH='%s:\\' % USBPATH
print('USB mounted to', USBPATH)
return USBPATH + ""
return ""
drive = FETCH_USBPATH()
while drive == "":
print('Please plug in USB drive and press any key to continue...', end="")
input()
drive = FETCH_USBPATH()
该脚本会提示用户在含有“file.id”驱动器插件和连接时,将驱动器盘符打印到控制台并允许使用“驱动器”作为变量。
有一个注释[here](http://stackoverflow.com/a/827398/736937),类似的方法('os.path.isdir' vs'os.path.exists')可以弹出一个窗口对话。我的桌面上没有这样的驱动器,所以我无法轻松测试,但可能值得注意。如果没有(或者你没有安装这种类型的驱动器),这种方法非常干净和直接。 – jedwards 2015-03-13 06:32:46
@jedwards yes如果我用.bat(使用if exists cmd)搜索驱动器号,我也会得到一个类似的错误,我的计算机上有一个SD卡读卡器,并且吐出一个'错误',因为它有'no媒体' - 但是Python的os.path.exists似乎处理得很好。 thefourtheye我会尽快测试这个命令。感谢 – 2015-03-13 09:45:57
OK无法得到您的代码工作,所以我修订,也注意到丹D'S: '从字符串进口ascii_uppercase 进口OS 高清get_usb_drive(): 用于驱动器ascii_uppercase: 如果操作系统。 path.exists('%s:\\ File.ID'%drive:) drive ='%s: () while drive ==“”: print('请插入我们的USB驱动器并按任意键继续...',end =“”) input() drive = get_usb_drive()' 现在问题,即使找到驱动器号,它也会循环。这可能是简单的事,唉,我是一个小老板 – 2015-03-13 10:25:57