我使用的是 Windows 的 Power Shell。我想运行一个需要很长时间才能完成的Python脚本(这是一个数据采集的代码,所以大约需要几个小时才能结束)。所以,我希望能够在终端上看到所有打印和结果,但我想将所有输出(最后)保存为字符串、文件或其他任何内容。
我一直在尝试使用重定向命令,如 python example_file.py > output.txt
、 python example_file.py | tee output.txt
和类似命令,但问题是这些命令在后台运行所有脚本,并在完成后才显示结果(再次,我希望能够看到收购的进展)。
我在网上查看并发现 Linux 中有一个名为“script”的命令,其用途与我想要的相同,但我没有找到任何与 Windows Power Shell 等效的命令。我也接受 Python 中的任何解决方案,不一定非要在 PS 上。
请有人帮帮我吗?
编辑:我想实时查看输出。我的意思是,目的是正常查看代码的所有结果,因为它通常在 PS 终端上执行,然后将所有输出保存到文件、字符串或其他任何内容中。
示例:如果我运行
from time import sleep
print('banana')
sleep(3)
print('banana again')
它会在终端上显示第一个“banana”,然后在三秒后,它会再次显示“banana”。问题在于,使用上述代码,它将在后台执行脚本,然后立即显示结果。这不是我想要的。
答案 0 :(得分:0)
我会使用以下代码:
from time import sleep
outputs = []
def myprint(print):
global outputs
print(print)
outputs.append(print)
myprint('banana')
sleep(3)
myprint('banana again')
open("output.txt", "w").write("\n".join(outputs))
代码现在写入(如果还没有,则创建)一个名为 output.txt
的文件,其中包含使用 myprint()
函数打印的所有内容。如果需要,您也可以访问它们 if 作为 outputs
数组中的单个字符串。另外,不要奇怪,但在 python 中,您可以将 "
和 '
用作同一事物。