我正在使用Python2.6。我想要列出系统可能拥有的磁盘驱动器。
在Windows上,它可能是像C:/
、D:/
、E:/
等。在Linux上,它可能是像/boot
、/media/SDCard
等。而我不知道Mac上的情况。也许在/Volumes下有类似的东西。
是否有人知道Python中一种跨平台的方法(即可以在Linux、Windows和Mac上运行)?
谢谢!
我正在使用Python2.6。我想要列出系统可能拥有的磁盘驱动器。
在Windows上,它可能是像C:/
、D:/
、E:/
等。在Linux上,它可能是像/boot
、/media/SDCard
等。而我不知道Mac上的情况。也许在/Volumes下有类似的东西。
是否有人知道Python中一种跨平台的方法(即可以在Linux、Windows和Mac上运行)?
谢谢!
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')]
sdiskpart(device ='/ dev / disk0s2',mountpoint ='/',fstype ='hfs',opts ='rw,local,rootfs,dovolfs,journaled,multilabel')
。 - ArtOfWarfareEric Smith's answer to use psutil
对于我在Windows上的使用效果很好,但在OS X上,我更喜欢这个:
from os import listdir
listdir('/Volumes')
Macintosh HD
而不是 /
或 /dev/disk0s2
)。/
而不是Macintosh HD
。 - ArtOfWarfare在psutil中,我没有找到一种方法能够包括Windows上的网络挂载。例如,\foobar\home被映射到X:,但是X:在psutil.disk_partitions()返回的列表中不显示(本地驱动器显示)。
更新:要在返回的列表中包括网络驱动器,只需使用:
psutil.disk_partitions(all=True)
效果非常好。
Original Answer翻译成"最初的回答"。