使用Python在Linux,Windows和Mac上列出磁盘驱动器的跨平台方式?

问题描述 投票:9回答:4

我使用的是Python2.6。我试图列出系统可能具有的磁盘驱动器。

在Windows上,它可能像C:/D:/E:/等。在Linux上,它可能像/boot/media/SDCard等。我不知道它在Mac上是什么样的。也许/ Volumes下的东西。

有没有人知道Python中的跨平台方式(即在Linux,Windows和Mac上运行的方式)?

谢谢!

python file cross-platform disk
4个回答
2
投票

Linux设备实际上没有统一的命名方案可以保证您可以使用可格式化的块设备。有些惯例,但它们可以有很大的不同,如果我愿意,我可以调用我的拇指驱动器/ Thomas / O,并且Python中没有跨平台方式可以知道:

  1. / Thomas / O对应于/ dev / sdf1
  2. / dev / sdf1可以在其上创建FAT32文件系统
  3. / dev / sdf不是/ dev / sdf1的首选

我很确定没有一个跨平台的Python模块可以让你确定H:/在Windows系统上是格式化的,但Z:/不是。

每个系统都需要自己的特定检查和验证,您可以从研究开源磁盘操作软件中获得最佳信息。


13
投票

psutil包(https://pypi.python.org/pypi/psutil)有一个disk_partitions函数。

视窗:

>>> 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')]

1
投票

Eric Smith's answer to use psutil在Windows上对我很有用,但在OS X上,我更喜欢这样:

from os import listdir
listdir('/Volumes')

它会返回人类可读的名称,至少在我的情况下,它会更好(IE,它会给你Macintosh HD而不是//dev/disk0s2。)


0
投票

我没有在psutil中看到在Windows上包含网络安装的方法。即,\ foobar \ home映射到X:,但X:不出现在psutil.disk_partitions()返回的列表中(本地驱动器是)。

© www.soinside.com 2019 - 2024. All rights reserved.