1

我正在尝试将 psutil.test() 写入文件,但我无法让它工作。有没有办法做到这一点?

这是我使用的代码:

import psutil
import tkMessageBox

def Sysinfo():
 test = psutil.test()
 tkMessageBox.showinfo(title='testing',message=test)
 FILE = open("sysinfo.txt","w")
 FILE.write(str(test))
 FILE.close()

Sysinfo()

该文件包含“无”行。

在提示 psutils.test() 显示:

用户 PID %CPU %MEM VSZ RSS TTY 开始时间命令 root 1 0.0 0.1 3532 1944 ? 14:23 00:00 初始化根 2 0.0 ?? ? ? 14:23 00:00 kthreadd root 3 0.0 ? ? ? ? 14:23 00:00 ksoftirqd/0 根 5 0.0 ?? ? ? 14:23 00:00 kworker/u:0 root 6 0.0 ? ? ? ? 14:23 00:00 迁移/0 等等。

4

2 回答 2

3

试试这个:

def SysInfo():
  oldstdout = sys.stdout
  sys.stdout = open("sysinfo.txt","w")
  psutil.test()
  sys.stdout.close()
  sys.stdout = oldstdout
SysInfo()

这会将标准输出重定向到文件,写入文件,然后给你正确的答案。

于 2012-10-19T17:22:08.827 回答
2

psutil.test()只打印结果,它没有返回语句。试试这个:

import inspect
import psutil
test_source_code = inspect.getsource(psutil.test)
print test_source_code

您可以搜索这样的return语句:

test_source_code.find('return') yields `-1`

以下是 psutil.test() 的结束方式:

            print_(templ % (user[:10],
                        pinfo['pid'],
                        pinfo['cpu_percent'],
                        memp,
                        vms,
                        rss,
                        pinfo.get('terminal', '') or '?',
                        ctime,
                        cputime,
                        pinfo['name'].strip() or '?'))

提示:这是在终端中读取 python 代码的便捷方式。(先做pip install pygments!)

import pygments
from pygments.lexers import PythonLexer
from pygments.formatters import TerminalFormatter
from pygments import highlight

print hightlight(test_source_code, PythonLexer(), TerminalFormatter())
于 2012-10-19T17:20:06.877 回答