当运行psutil.virtual_memory()时,我得到这样的输出:
>>psutil.virtual_memory()
vmem(total=8374149120L, available=1247768576L)
但是这些值的衡量单位是多少?文档只是声称它的“总物理内存可用”但仅此而已。我正在尝试将其转换为用户可以实际关联的值(即GB)。
提前致谢
答案 0 :(得分:11)
为什么不使用位移运算符: 如果你想以人类可读的方式展示,就像这样!
values = psutil.virtual_memory()
以MB格式显示
total = values.total >> 20
以GB格式显示
total = values.total >> 30
答案 1 :(得分:7)
1024 ^ 3 = Byte to Gigabyte
所以我认为这项工作:
import psutil
memory = psutil.virtual_memory().total / (1024.0 ** 3)
print(memory)
答案 2 :(得分:6)
指定的测量单位是字节。您可以使用此代码将其转换为Gb 当你使用该值时,它将具有尾随“L”,但这不会影响计算。
values=psutil.virtual_memory()
def get_human_readable_size(self,num):
exp_str = [ (0, 'B'), (10, 'KB'),(20, 'MB'),(30, 'GB'),(40, 'TB'), (50, 'PB'),]
i = 0
while i+1 < len(exp_str) and num >= (2 ** exp_str[i+1][0]):
i += 1
rounded_val = round(float(num) / 2 ** exp_str[i][0], 2)
return '%s %s' % (int(rounded_val), exp_str[i][1])
total_size = get_human_readable_size(values.total)
答案 3 :(得分:1)
只需使用 bytes2human
import psutil
from psutil._common import bytes2human
mem_usage = psutil.virtual_memory()
total_in_human_format = bytes2human(mem_usage[0])
print(total_in_bytes)
输出:
15.6G
答案 4 :(得分:0)
不能注释,所以我使用“答案”。
find . -type f -name "*[!0].jpg"
这是不正确的。前缀Giga表示10 ^ 9。因此,千兆字节为1000 ^ 3字节。您可以忘记多余的24个。
因此:1000 ^ 3 =字节到千兆字节