在同一行上打印值结果(Python)

2024-09-16 20:15:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我要做的是:

import psutil
import read_config

mem = psutil.virtual_memory()

print('Total RAM: ', (round(mem[0] / (1024 * 1024))), '(MB)')  # total

ram_usage = read_config.ram_usage

while ram_usage is True:
    mem = psutil.virtual_memory()
    print('Used RAM: ', (round(mem[3] / (1024 * 1024))), '(MB)', end="")  # used

问题是,如果我执行,输出如下:

Total RAM:  3949 (MB)
Used RAM:  3069 (MB)Used RAM:  3069 (MB)Used RAM:  3069 (MB)Used RAM:  3069 (MB)Used RAM:  3069 (MB)

如何解决Used RAM问题?我只想在第二行上打印已用RAM的值,而不是在每次满足条件时打印该行。你知道吗

谢谢


Tags: importconfigreadvirtualusagembmemused
1条回答
网友
1楼 · 发布于 2024-09-16 20:15:06

要检测值是否已更改,只需保存旧值,然后有条件地打印:

old_mem = 0
while ram_usage is True:
    mem = psutil.virtual_memory()
    if mem[3] != old_mem:
        old_mem = mem[3]
        print('Used RAM: ', (round(mem[3] / (1024 * 1024))), '(MB)')

然而,这将检测到非常小的变化。如果只想在显示值更改时打印,请先转换为MB,然后比较:

old_mem = 0
while ram_usage is True:
    mem = psutil.virtual_memory()
    mem_mb = round(mem[3] / (1024 * 1024))
    if mem_mb != old_mem:
        old_mem = mem_mb
        print('Used RAM: ', mem_mb, '(MB)')

相关问题 更多 >