我想使用VC++枚举Windows中所有可用的驱动器号(尚未使用).
我怎样才能做到这一点?
我想让我的Windows计算机在检测到插入了具有特定名称的闪存驱动器(例如"我的驱动器")时运行Python脚本.
我怎样才能做到这一点?
我应该在Windows中使用某种工具还是有办法编写另一个Python脚本,以便在插入闪存驱动器后立即检测到它?(如果脚本在计算机上,我更喜欢它.)
(我是一个编程新手..)
我正在尝试编写一个可以在远程Linux服务器上移动和复制文件的Python脚本.但是,我不能假设每个运行脚本的人(在Windows上)都会将此服务器映射到同一个字母.我想通过其网络URL(驱动器号映射到的网络URL)来访问服务器,而不是提示用户输入正确的字母.因此,例如,如果我已映射服务器的URL
\\name-of-machine.site.company.com
Run Code Online (Sandbox Code Playgroud)
要驱动S:\,我想以驱动器号不可知的方式访问文件S:\ var\SomeFile.txt.我环顾四周,一般建议似乎是使用UNC表示法:
f = open(r"\\name-of-machine.site.company.com\var\SomeFile.txt", "w")
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试这个,一个IOError说没有这样的文件或目录.如果我尝试使用服务器的IP地址(而不是真实地址,但类似):
f = open(r"\\10.1.123.149\var\SomeFile.txt", "w")
Run Code Online (Sandbox Code Playgroud)
经过长时间的停顿后,我得到一个IO错误:"无效模式('w')或文件名".为什么这些符号不起作用,如何通过其URL访问此服务器(理想情况下,就像它是本地驱动器一样)?
我正在尝试编写一个 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'):
Run Code Online (Sandbox Code Playgroud)
-- 然后对每个驱动器字母 A 到 Z 重复出现。自然,这会需要输入很多内容,我只是想知道是否有一种解决方法可以使我的代码保持整洁并尽可能少(或者这是唯一的方法? )。
此外,如果找不到驱动器(即请插入 USB),有没有办法让它打印错误,然后返回到开始/循环?就像是
print('Please plug in our USB drive')
return-to-start
Run Code Online (Sandbox Code Playgroud)
有点像 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 == …Run Code Online (Sandbox Code Playgroud) 我是Kivy的初学者.
当我尝试在kivy.uix.filechooser模块上重新实现教程时,我只能访问我的C:驱动器上的文件,而不能访问其他驱动器上的文件.我试图寻找filechoser的根源,但无济于事.
有没有办法访问其他驱动器?
python ×4
c++ ×1
drives ×1
filechooser ×1
kivy ×1
python-3.x ×1
string ×1
usb-drive ×1
winapi ×1
windows ×1