Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中更改字母后检测外部硬盘驱动器_Python_Windows_Hdd - Fatal编程技术网

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

在Python中更改字母后检测外部硬盘驱动器,python,windows,hdd,Python,Windows,Hdd,我正在编写一个Python程序来扫描和跟踪几个外部硬盘上的文件。它将文件路径保持为本地文件中的字符串。问题是,有时当我将外部硬盘插入不同的计算机时,字母会发生变化,而之前存储的路径也会毫无用处。如果插入了相同的硬盘,但字母发生了变化,我希望跟踪该驱动器并更改本地记录。现在,我可以想到两种可能性: 在驱动器的根目录中保留一个标识文件,并扫描所有驱动器盘符,以检测具有正确标识文件的驱动器 在开始处扫描所有字母,以检测与本地记录位于同一路径中的文件。如果找到,请识别驱动器 我想知道是否有任何类型的现有

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

  • 在驱动器的根目录中保留一个标识文件,并扫描所有驱动器盘符,以检测具有正确标识文件的驱动器
  • 在开始处扫描所有字母,以检测与本地记录位于同一路径中的文件。如果找到,请识别驱动器

  • 我想知道是否有任何类型的现有HDD(或分区)标识可用于访问驱动器(驱动器号除外)?

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


    类似问题:

    是的,您可以使用卷序列号来标识HDD。卷序列号由Windows在创建或格式化分区时生成

    您应该能够通过Python使用下面的代码来实现这一点,用所需的分区替换
    c

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

    一种方法是使用autorun.inf强制该字母