用python读取linux磁盘的大小

时间:2014-04-04 19:09:29

标签: python

我现在并不担心可移植性,我只是想以字节为单位读取say /dev/sdb的大小。

我尝试了os.path.getsize('/dev/sdb/'),但它返回了0。

我还尝试open('/dev/sdb/', 'rb')read()以及tell()来计算,但这太慢了。

1 个答案:

答案 0 :(得分:6)

使用sysfs。像这样阅读/sys/block/sdb/size

BLOCK_SIZE_BYTES = 512 # usually?  always?  *shrug*

def get_disk_size(blockdev):
    blocks = int(open('/sys/block/{blockdev}/size'.format(**locals())).read())
    return blocks * BLOCK_SIZE_BYTES