psutil.test() returns None。如何将其输出写入文件?
psutil.test() returns None. How to write its output to a file?
我正在尝试将 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)
psutil.test()
不是 return 字符串。它打印一个字符串。一种解决方法是使用 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
语句),否则您的文件将不会被刷新和关闭。 redirect_stdout
documentation 为文件和重定向使用单独的上下文管理器。
psutil.test()
只打印到 stdout
但 returns None
.
您可以使用 contextlib.redirect_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)
我正在尝试将 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)
psutil.test()
不是 return 字符串。它打印一个字符串。一种解决方法是使用 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
语句),否则您的文件将不会被刷新和关闭。 redirect_stdout
documentation 为文件和重定向使用单独的上下文管理器。
psutil.test()
只打印到 stdout
但 returns None
.
您可以使用 contextlib.redirect_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)