2013-06-05 4 views
1

논리 경로가 있습니다. 예를 들면 다음과 같습니다. - path1 = 'C :/abc', path2 = 'E :/xyz'python - 논리 경로에서 물리적 디스크 정보 얻기

둘 다 동일한 실제 디스크에 있는지 확인하고 싶습니다.

또는 일반적으로 연결된 실제 드라이브에 논리 경로를 매핑하고 싶습니다.

나는 리눅스에서도 똑같이하고 싶다. 지금은 "os.stat (path) .st_dev"를 사용하여 장치 ID를 얻습니다. 하지만 ID는 동일한 동일한 실제 드라이브에있는 논리 디스크의 경우와 다를 수 있습니다. 그래서 그것은 나를 위해 일하지 않습니다. 더 좋거나 직접적인 해결책이 있습니까?

+1

내 노력을 언급하지 않아서 미안합니다. 나는 wmi를 사용하여 시도하고 내 문제를 해결. 하지만 다시 리눅스에서 똑같이 고집했습니다. –

답변

1

이이 유형의 딕셔너리를 얻기 위해 나에게 도움이

key = '' 
    for physical_disk in w.Win32_DiskDrive(): 
    logical_disks = [] 
    for partition in physical_disk.associators ("Win32_DiskDriveToDiskPartition"): 
     for logical_disk in partition.associators ("Win32_LogicalDiskToPartition"): 
      key = logical_disk.Description 
      if key not in all_logical_disks: 
       all_logical_disks[key] = [] 
      logical_disks.append(logical_disk.Caption) 
    if logical_disks: 
     all_logical_disks[key].append(logical_disks) 

내 문제를 해결 : {u'Local 고정 디스크 ': [[u'C', u'D : '], [U 'E :', u'F : ']]} 서로 다른 물리적 디스크에 논리적 패티 션을 그룹화했습니다. 논리 경로가 같은 목록에 있는지 비교할 수 있습니다.