将函数写入文件,得到无

时间:2012-10-19 17:10:09

标签: python output

我正在尝试将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 等。

2 个答案:

答案 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())