我在Linux上使用Python 2.6。最快的方法是什么:
例如,假设/dev/sda2已安装在/home和/dev/mapper/foo上/home/foo。"/home/foo/bar/baz"我想从琴弦中取出那副("/dev/mapper/foo", "home/foo")。
/dev/sda2
/home
/dev/mapper/foo
/home/foo
"/home/foo/bar/baz"
("/dev/mapper/foo", "home/foo")
如果您只需要设备上的可用空间,请参阅os.statvfs()下面的使用答案。
os.statvfs()
如果您还需要与文件关联的设备名称和安装点,则应调用外部程序以获取此信息。df将提供您所需的所有信息-调用时df filename将在包含文件的分区上打印一行。
df
df filename
举个例子:
import subprocess df = subprocess.Popen(["df", "filename"], stdout=subprocess.PIPE) output = df.communicate()[0] device, size, used, available, percent, mountpoint = \ output.split("\n")[1].split()
请注意,这相当脆弱,因为它取决于df输出的确切格式,但是我不知道更可靠的解决方案。(有一些解决方案依赖于/proc下面的文件系统,其可移植性甚至不如此解决方案。)
/proc