我想列出系統可能有的磁盤驅動器。Python和跨平臺的方式列出Linux,Windows和Mac上的磁盤驅動器
在Windows上,它可能類似於「C:/」,「D:/」,「E:/」。
在Linux上,它可能是類似「的/ boot」,「/媒體/ SD卡」等
而且我不知道是什麼滋味在Mac上。也許在/卷下。
有沒有人知道在Python中使用跨平臺方式(即在Linux,Windows和Mac上工作的方式)?
謝謝!
哦:簡單說明一下,我運行的是Python 2.6。
我想列出系統可能有的磁盤驅動器。Python和跨平臺的方式列出Linux,Windows和Mac上的磁盤驅動器
在Windows上,它可能類似於「C:/」,「D:/」,「E:/」。
在Linux上,它可能是類似「的/ boot」,「/媒體/ SD卡」等
而且我不知道是什麼滋味在Mac上。也許在/卷下。
有沒有人知道在Python中使用跨平臺方式(即在Linux,Windows和Mac上工作的方式)?
謝謝!
哦:簡單說明一下,我運行的是Python 2.6。
Linux設備並沒有真正的統一命名方案來保證您可以使用可形成的塊設備。有約定,但他們可以有很大的不同,我可以叫我的拇指驅動器/托馬斯/ O,如果我想並沒有跨平臺的方式在Python知道:
我敢肯定,也沒有一個跨平臺的Python模塊,它可以讓你確定H:/是格式化的能夠在Windows系統上運行,但是Z:/不是。
每個系統都需要自己的特定檢查和驗證,您可以從學習開源磁盤操作軟件中學到最多的知識。
我正在考慮像gparted這樣的程序如何做。但是,那不是跨平臺的,只有Unix(甚至是Linux),對嗎? 驅動器不一定必須是可格式化的。只是,他們應該被附上或內部媒體。由於我主要處理SD卡,因此我只列出了Linux下的/ media,Mac上的Volumes以及Windows上的所有磁盤驅動器(C:/,D:/等)。 – 2010-08-29 21:39:56
不要思考它,偷走它。我的意思是,這些想法,但也是來源,除非你喜歡重新發明輪子。 http://sourceforge.net/projects/gparted/files/gparted/ – msw 2010-08-29 22:31:45
即使在Linux上甚至不存在任何/媒體,也無法保證將安裝未格式化的驅動器供您查看。甚至NT/Vista/7都允許以Unixy方式將設備掛載到任意目錄。 – msw 2010-08-29 22:37:04
psutil包(https://pypi.python.org/pypi/psutil)具有disk_partitions功能。
的Windows:
>>> import psutil
>>> psutil.disk_partitions()
[sdiskpart(device='C:\\', mountpoint='C:\\', fstype='NTFS', opts='rw,fixed'), sdiskpart(device='D:\\', mountpoint='D:\\', fstype='NTFS', opts='rw,fixed'), sdiskpart(device='E:\\', mountpoint='E:\\', fstype='', opts='cdrom'), sdiskpart(device='F:\\', mountpoint='F:\\', fstype='NTFS', opts='rw,fixed')]
的Linux:
>>> import psutil
>>> psutil.disk_partitions()
[sdiskpart(device='/dev/sda1', mountpoint='/', fstype='ext4', opts='rw,errors=remount-ro'), sdiskpart(device='/dev/sr0', mountpoint='/media/VBOXADDITIONS_4.3.10_93012', fstype='iso9660', opts='ro,nosuid,nodev,uid=1000,gid=1000,iocharset=utf8,mode=0400,dmode=0500,uhelper=udisks')]
在OS X上,我的驅動器名稱顯示在Finder中(Macintosh HD ...我敢肯定這是默認名稱。)任何想法如何找到該名稱,因爲這是顯示的內容.. 。'sdiskpart(device ='/ dev/disk0s2',mountpoint ='/',fstype ='hfs',opts ='rw,local,rootfs,dovolfs,journaled,multilabel')''。 – ArtOfWarfare 2015-04-15 00:13:55
我不太瞭解OS X,但我懷疑這將是磁盤的標籤。也許呼籲[disklabel](https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man8/disklabel.8.html)? – 2015-04-15 16:26:54
Eric Smith's answer to use psutil
很適合我在Windows,但在OS X上,我更喜歡這樣的:
from os import listdir
listdir('/Volumes')
它給你回至少在我的情況下,這是人類可讀的名稱,將是更可取的(IE,它給你Macintosh HD
而不是/
或/dev/disk0s2
。)
從psutil返回的命名元組中獲取'mountpoint'屬性以獲取人類可讀的名稱 – Debjit 2016-01-27 14:55:17
@Debjit - Nope。在OS X上返回'/'而不是'Macintosh HD' – ArtOfWarfare 2016-02-08 16:22:07
你想用這個達到什麼樣的最終結果? – 2010-08-29 20:50:45
我正在爲用戶構建一個界面來選擇連接到計算機的磁盤驅動器。它需要知道驅動器上可用的空間,並且能夠使用FAT32文件系統(可能)對其進行格式化,並且能夠訪問文件。 – 2010-08-29 20:54:46
建議:將選定的部分取出以與您有權訪問的部分一起工作,使其工作,然後進行相對簡單的設備選擇。並且在格式化時要小心,以防萬一。 – msw 2010-08-29 21:16:13