用Python读取Linux磁盘大小

2 投票
1 回答
804 浏览
提问于 2025-04-18 01:24

我现在不太担心可移植性,我只是想知道,比如说,/dev/sdb 的大小是多少字节。

我试过用 os.path.getsize('/dev/sdb/'),但是它返回的是0。

我还尝试用 open('/dev/sdb/', 'rb') 然后用 read()tell() 来获取大小,但这样太慢了。

1 个回答

7

使用 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

撰写回答