【发布时间】:2014-04-18 16:45:40
【问题描述】:
我使用的是 python 2.7,对它有点陌生。
我有一个设备,我正在尝试编写一个 python 脚本,它将检查存储驱动器分区上是否存在卷。这必须非常具体,以便仅检查卷(不是路径,而不仅仅是驱动器号)。该卷有一个名称(我们称之为 XYZ)并且存在于设备大容量存储中。
在 cmd 中使用了一个名为 DISKPART 的 windows 工具。漫长的方法是使用脚本参数“LIST VOLUMES”执行 DISKPART 并将输出解析为文件。然后让 python 读取并匹配该文件中的行。我会告诉你文件是什么样子的:
Microsoft DiskPart version 6.1.7601
Copyright (C) 1999-2008 Microsoft Corporation.
On computer: BLAH
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ----- ---------- ------- --------- --------
Volume 0 D DVD-ROM 0 B No Media
Volume 1 C BLAH NTFS Partition 149 GB Healthy System
Volume 2 RAW Partition 8 MB Healthy
K:\XYZ\
Volume 3 F BLAH2 FAT Partition 32 MB Healthy
K:\BLAH2\
Volume 4 BLAH3 NTFS Partition 4608 MB Healthy
K:\BLAH3\
Volume 5 J BLAH4 FAT Partition 4256 KB Healthy
K:\BLAH4\
Volume 6 K BLAH5 NTFS Partition 1771 MB Healthy
Volume 7 BLAH6 NTFS Partition 20 GB Healthy
K:\BLAH6\
如您所见,即使像 XYZ 这样的卷未分区,也只会列出卷。有没有更简单的方法在 python 中做同样的事情,或者我应该开始使用外部工具 (DISKPART) 和 re.search 来搜索解析文件中的 XYZ 行?
顺便说一下,os.path.ismount() 只检查驱动器号。我需要它来读取卷名(不仅仅是它所在的字母)。
和
os.path.exists() 只检查路径名是否存在。它不检查路径名是否为卷。
提前感谢您对此提供的任何帮助
【问题讨论】: