我现在并不担心可移植性,我只是想以字节为单位读取say /dev/sdb
的大小。
我尝试了os.path.getsize('/dev/sdb/')
,但它返回了0。
我还尝试open('/dev/sdb/', 'rb')
和read()
以及tell()
来计算,但这太慢了。
答案 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