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

时间:2014-07-01 14:03:58

标签: python windows hdd

我正在编写一个Python程序来扫描和跟踪几个外部硬盘上的文件。它将文件路径保存为本地文件中的字符串。问题是,有时当我将外部硬盘插入不同的计算机时,字母改变,以及之前存储的路径将是无用的。我想跟踪驱动器并更改本地记录,如果插入相同的硬盘驱动器但字母已更改。现在,我可以想到两种可能性:

  1. 在驱动器的根目录中保留一个标识文件,并扫描所有驱动器号,以使用正确的标识文件检测驱动器。
  2. 在开始时扫描所有字母以检测与本地记录在同一路径中的文件。如果找到,请识别驱动器。
  3. 我想知道是否存在可用于访问驱动器(驱动器号除外)的HDD(或分区)的任何现有标识?

2 个答案:

答案 0 :(得分:1)

使用供应商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

Similare问题:usb device identification

答案 1 :(得分:1)

是的,您可以使用卷序列号来识别硬盘。创建或格式化分区时,Windows会生成卷序列号。

您应该可以通过Python使用以下代码执行此操作,将c替换为所需的分区。:

import subprocess

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