分区磁盘python

时间:2019-04-24 09:52:54

标签: python diskspace

我想获取所有本地磁盘及其分区,然后返回所有数据,例如“总空间,已用空间和可用空间”。问题是检查分区是否存在,如果没有错误,则继续结束。

在下面的代码中,我的本地磁盘具有三个分区:C:\,D:\,F:\。但是,分区G:\不存在,因此先挂起然后关闭。

我正在使用Python 3.6和Pycharm社区。

def disk_usage(self):
        disks = ['C','D','F','G']
        for i in disks:
            total, used, free = shutil.disk_usage(i+":\\")
            try:
                print("Drive " + i + " as follows:")
                print("==================")
                print("Total: %d GB" % (total // (2**30)))
                print("Used: %d GB" % (used // (2**30)))
                print("Free: %d GB" % (free // (2**30)))
                print("===========")
                print("")
            except GetoptError as err:
               print(err)

预先感谢

1 个答案:

答案 0 :(得分:2)

您可以在计算尺寸之前查看路径是否存在:

p = i+":"+os.sep
if os.path.exists(p):
    total, used, free = shutil.disk_usage(p)

或捕获OSError异常

try:
   total, used, free = shutil.disk_usage(i+":\\")
   ...
catch OSError:
    pass

顺便说一句,最好也动态获取驱动器列表(请参见Is there a way to list all the available drive letters in python?)。

如上所述,可能仍需要检查是否存在/捕获异常(磁盘不在此类驱动器中)。