gpt4 book ai didi

python - 有没有办法使 psutil 输出在运行之间保持一致?

转载 作者:太空宇宙 更新时间:2023-11-03 20:26:23 26 4
gpt4 key购买 nike

我正在尝试从 psutil 中获取一些数据。具体来说,我想按此顺序获取 memory_percentagename 数据。这是代码:

def getListProcessMem():
for proc in psutil.process_iter(attrs=None, ad_value=None):
procInfo = proc.as_dict(attrs=['memory_percent', 'name'])
procInfo = proc.as_dict(attrs=['name', 'cpu_percent'])
theOneProcessList.append(procInfo)
return(theOneProcessList)

getListProcessMem()
output = theOneProcessList
with open('zawarudo.txt', 'w') as f:
for processes in theOneProcessList:
f.write("%s\n" % processes)

问题是,有时输出顺序是错误的,最终会先写入进程的name,然后写入mem_prec

sed 然后处理数据的切割,但由于有时顺序错误,最终输出文件是乱码。

有办法保持一致吗?先是内存,然后是名称

最佳答案

如果你想对其进行排序,只需使用dict(sorted(processes.items()))而不是processes

字典上的迭代是按插入顺序完成的,下面是示例测试代码

>>> p1 = { 'name': 'dummy', 'mem':33}
>>> p2 = {'mem':33, 'name':'dummy'}

>>> print ("%s\n" % p1)
{'name': 'dummy', 'mem': 33}
>>> print ("%s\n" % p2)
{'mem': 33, 'name': 'dummy'}

>>> print ("%s\n" % dict(sorted(p1.items())))
{'mem': 33, 'name': 'dummy'}
>>> print ("%s\n" % dict(sorted(p2.items())))
{'mem': 33, 'name': 'dummy'}




关于python - 有没有办法使 psutil 输出在运行之间保持一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57786866/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com