我正在尝试将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()中显示:
USER PID%CPU%MEM VSZ RSS TTY START TIME COMMAND root 1 0.0 0.1 3532 1944? 14:23 00:00 init 根2 0.0? ? ? ? 14:23 00:00 kthreadd 根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 等。
答案 0 :(得分:3)
试试这个:
def SysInfo():
oldstdout = sys.stdout
sys.stdout = open("sysinfo.txt","w")
psutil.test()
sys.stdout.close()
sys.stdout = oldstdout
SysInfo()
这会将stdout重定向到文件,写入它然后给你正确的答案。
答案 1 :(得分:2)
psutil.test()
仅打印结果,它没有return语句。试试这个:
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())