我正在尝试编写一个 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”的驱动器,并在连接时将驱动器号打印到控制台并允许使用“驱动器”作为变量。
原文由 Julian White 发布,翻译遵循 CC BY-SA 4.0 许可协议
因为你想反复检查驱动器是否存在,你可能想把它作为一个单独的函数移动,就像这样
然后,如果您希望程序反复提示用户插入设备,您可能希望循环运行它,如下所示
最初,我们将尝试使用
get_usb_drive()
获取驱动器,如果找不到,它将返回一个空字符串。我们迭代直到get_usb_drive()
的返回值是一个空字符串,并提示用户插入设备并等待按键。注意: 我们使用
os.path.join
创建实际的文件系统路径,而不是所有手动字符串连接。