psutil.测试()无返回。如何将输出写入文件?

2024-10-03 21:27:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将psutil.test()结果写入一个文件,但是它打印出我想要在文件中的文本,并将“None”写入test.txt。在

import psutil
from time import sleep
while True:
    proccesses = psutil.test()
    file = open("test.txt", "a")
    file.write(str(proccesses))
    file.write("\n" * 10)
    file.close()
    sleep(5)

Tags: 文件fromtest文本importtxtnonetrue
2条回答

psutil.test()不返回字符串。它打印一个字符串。一种解决方法是使用contextlib.redirect_stdout,这样字符串就不会STDOUT进入文件。在

import psutil
from contextlib import redirect_stdout
from time import sleep

with open("test.txt", "a") as file:
    with redirect_stdout(file):
        while True:
            psutil.test()  # Will print to file.
            file.write("\n" * 10)  # or print("\n" * 10)
            sleep(5)

请确保同时使用两个上下文管理器(with语句),否则文件不会被刷新和关闭。^{} documentation对文件和重定向使用单独的上下文管理器。在

psutil.test()只打印到stdout,但返回{}。在

您可以使用^{}将标准输出(例如,当使用print)重定向到一个文件:

import contextlib
import time
import psutil

while True:
    with open("test.txt", 'a') as fout, contextlib.redirect_stdout(fout):
        psutil.test()
        print("\n" * 10)
    time.sleep(5)

相关问题 更多 >