我正在尝试写一个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的每个驱动器号重复。自然,这将是一个很大的打字输出,我只是想知道是否有一个变通办法,以保持我的代码整洁和尽可能少(或者这是唯一的方法?)
此外,有没有办法让它打印一个错误,如果驱动器找不到(即说,请插入您的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"的驱动器,连接后,将驱动器号打印到控制台,并允许将"drive"用作变量。
4条答案
按热度按时间mftmpeh81#
Python对此有一个简单的解决方案,使用pathlib模块。
svmlkihl2#
由于您希望反复检查驱动器是否存在,因此可能希望将其作为一个单独的函数,如下所示
然后,如果您希望程序反复提示用户插入设备,您可能希望在循环中运行它,如下所示
最初,我们将尝试获取
get_usb_drive()
驱动器,如果找不到,它将返回一个空字符串,然后迭代,直到get_usb_drive()
返回的值为空字符串,并提示用户插入设备并等待按键。**注意:**我们使用
os.path.join
创建实际的文件系统路径,而不是所有手动字符串连接。5fjcxozz3#
使用循环并生成路径名:
carvr3hs4#
最简单的方法是:
适用于所有系统。然后您可以执行以下操作:
它不会在控制台中工作,因为使用文件路径.