windows 在Python中更改字母后检测外部硬盘驱动器

cyvaqqii  于 2022-12-14  发布在  Windows
关注(0)|答案(3)|浏览(166)

我正在写一个Python程序来扫描和跟踪几个外部硬盘驱动器上的文件。它把文件路径作为一个字符串保存在本地文件中。问题是,有时当我把外部硬盘驱动器插入不同的计算机时,字母会发生变化,并且先前存储的路径将是无用的。如果插入的是同一个硬盘,但盘符发生了变化,我希望跟踪该硬盘并更改本地记录。现在,我可以想到两种可能性:
1.在驱动器的根目录中保存一个标识文件,并扫描所有驱动器号以检测具有正确标识文件的驱动器。
1.扫描开头的所有字母以检测与本地记录路径相同的文件。如果找到,请标识驱动器。
我想知道是否有任何类型的硬盘驱动器(或分区)的现有标识,我可以使用它来访问驱动器(驱动器号除外)?

uqcuzwp8

uqcuzwp81#

使用供应商ID和设备ID标识驱动器。

#!/usr/bin/python
import sys
import usb.core
# find USB devices
dev = usb.core.find(find_all=True)
# loop through devices, printing vendor and product ids in decimal and hex
for cfg in dev:
  sys.stdout.write('Decimal VendorID=' + str(cfg.idVendor) + ' & ProductID=' + str(cfg.idProduct) + '\n')
  sys.stdout.write('Hexadecimal VendorID=' + hex(cfg.idVendor) + ' & ProductID=' + hex(cfg.idProduct) + '\n\n')

Use PyUSB to Find Vendor and Product IDs for USB Devices
相似的问题:usb device identification

des4xlb0

des4xlb02#

可以,您可以使用卷序列号来标识HDD。卷序列号是在您创建或格式化分区时由Windows生成的。
你应该可以通过Python用下面的代码来完成这一点,用你想要的分区替换c

import subprocess

subprocess.check_output(["vol", "C:"])
sdnqo3pr

sdnqo3pr3#

查找USB和外部硬盘驱动器
导入wmi导入操作系统w = wmi.WMI()
对于w.Win32_LogicalDisk()中的驱动器:如果驱动器.VolumeDirty == True,则打印(驱动器):打印(驱动器.标题,驱动器.卷名,驱动器.驱动器类型)

相关问题