如何运行脚本然后将输出保存到文件?

时间:2021-03-10 07:36:42

标签: python powershell

我使用的是 Windows 的 Power Shell。我想运行一个需要很长时间才能完成的Python脚本(这是一个数据采集的代码,所以大约需要几个小时才能结束)。所以,我希望能够在终端上看到所有打印和结果,但我想将所有输出(最后)保存为字符串、文件或其他任何内容。

我一直在尝试使用重定向命令,如 python example_file.py > output.txtpython 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”。问题在于,使用上述代码,它将在后台执行脚本,然后立即显示结果。这不是我想要的。

1 个答案:

答案 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 中,您可以将 "' 用作同一事物。

相关问题