问题描述
我有这些代码集可以在python中使用Psutil监视系统,并且可以正常工作。对于下一步,我希望结果每15秒刷新一次以保持监视系统更新,但是似乎找不到解决方法。以下是我的代码:
import psutil
def get_size(bytes,suffix="B"):
# unit conversion
factor = 1024
for unit in ["","K","M","G","T","P"]:
if bytes < factor:
return f"{bytes:.2f}{unit}{suffix}"
bytes /= factor
# Line break
print("=" * 40,"cpu Info","=" * 40)
# cpu frequencies
cpu_Frequency = psutil.cpu_freq()
print(f"Current Frequency: {cpu_Frequency.current:.2f}Mhz")
# cpu usage
print("cpu Usage Per Core:")
for i,percentage in enumerate(psutil.cpu_percent(percpu=True,interval=1)):
print(f"Core {i}: {percentage}%")
print(f"Total cpu Usage: {psutil.cpu_percent()}%")
# Line break
print("=" * 40,"Memory information","=" * 40)
# Memory details
svmem = psutil.virtual_memory()
print(f"Total: {get_size(svmem.total)}")
print(f"Used: {get_size(svmem.used)}")
print(f"Percentage: {svmem.percent}%")
print(f"Available: {get_size(svmem.available)}")
# Line break
print("=" * 40,"disk information","=" * 40)
print("Partitions and Usage:")
# disk partitions
partitions = psutil.disk_partitions()
for partition in partitions:
print(f"=== Device: {partition.device} ===")
print(f" Mountpoint: {partition.mountpoint}")
print(f" File system type: {partition.fstype}")
try:
partition_usage = psutil.disk_usage(partition.mountpoint)
except PermissionError:
continue
print(f" Total Size: {get_size(partition_usage.total)}")
print(f" Used: {get_size(partition_usage.used)}")
print(f" Free: {get_size(partition_usage.free)}")
print(f" Percentage: {partition_usage.percent}%")
我们将不胜感激任何帮助。
解决方法
您应该在while循环中运行
这是完整的代码
import psutil
import time
def get_size(bytes,suffix="B"):
# unit conversion
factor = 1024
for unit in ["","K","M","G","T","P"]:
if bytes < factor:
return f"{bytes:.2f}{unit}{suffix}"
bytes /= factor
def get_stats():
# Line break
print("=" * 40,"CPU Info","=" * 40)
# CPU frequencies
CPU_Frequency = psutil.cpu_freq()
print(f"Current Frequency: {CPU_Frequency.current:.2f}Mhz")
# CPU usage
print("CPU Usage Per Core:")
for i,percentage in enumerate(psutil.cpu_percent(percpu=True,interval=1)):
print(f"Core {i}: {percentage}%")
print(f"Total CPU Usage: {psutil.cpu_percent()}%")
# Line break
print("=" * 40,"Memory Information","=" * 40)
# Memory details
svmem = psutil.virtual_memory()
print(f"Total: {get_size(svmem.total)}")
print(f"Used: {get_size(svmem.used)}")
print(f"Percentage: {svmem.percent}%")
print(f"Available: {get_size(svmem.available)}")
# Line break
print("=" * 40,"Disk Information","=" * 40)
print("Partitions and Usage:")
# Disk partitions
partitions = psutil.disk_partitions()
for partition in partitions:
print(f"=== Device: {partition.device} ===")
print(f" Mountpoint: {partition.mountpoint}")
print(f" File system type: {partition.fstype}")
try:
partition_usage = psutil.disk_usage(partition.mountpoint)
except PermissionError:
continue
print(f" Total Size: {get_size(partition_usage.total)}")
print(f" Used: {get_size(partition_usage.used)}")
print(f" Free: {get_size(partition_usage.free)}")
print(f" Percentage: {partition_usage.percent}%")
if __name__ == "__main__":
while True:
time.sleep(2) # sleep for 2 seconds
get_stats()