Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用python读取linux磁盘的大小_Python - Fatal编程技术网

用python读取linux磁盘的大小

用python读取linux磁盘的大小,python,Python,目前我并不担心可移植性,我只是想读取大小,比如说,/dev/sdb,以字节为单位 我尝试了os.path.getsize('/dev/sdb/'),但它返回了0 我还尝试使用open('/dev/sdb/'、'rb')和read()和tell()来获取计数,但这太慢了。使用sysfs。读/sys/block/sdb/size如下: BLOCK_SIZE_BYTES = 512 # usually? always? *shrug* def get_disk_size(blockdev):

目前我并不担心可移植性,我只是想读取大小,比如说,
/dev/sdb
,以字节为单位

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


我还尝试使用
open('/dev/sdb/'、'rb')
read()
tell()
来获取计数,但这太慢了。

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

使用
sysfs
。阅读
/sys/block/sdb/size
,例如@BrianCain你应该回答这个问题。它很短,但是是对的。@Carsten我同意,我现在就发布一个答案,因为我有一些可以使用的python代码,但是如果他们愿意,我会更新/接受Brian的:)你至少可以通过阅读
/sys/block//queue/physical_block_size
()从Ubuntu中的sysfs计算出物理块(扇区)大小。