如何将Python程序的stdout移动到文件?

时间:2014-08-08 18:36:34

标签: python linux bash batch-file cmd

我正在使用Python 2.7,而我现在正在使用Windows 7,但我通常使用的是Linux,所以对类UNIX系统的回答也会非常受欢迎。

我知道可以使用以下命令将标准输出推送到许多类UNIX系统中的文件:

hello_world.py > hello_world_output.txt

hello_world.py的所有标准输出放入hello_world_output.txt。根据我刚刚在五秒前尝试的内容,此命令在Windows系统上的工作方式似乎相同。

但是说我有一个包含许多Python文件的程序,我想将所有标准输出推送到某个output.txtlog.txt等。我该怎么做?我已尝试使用main.py > output.txt命令,但这只会推送main.py的标准输出,而不是其余的.py文件。

在Linux和Windows系统中,如何将多文件程序(包括但不限于Python程序)的标准输出推送到单个文件?我熟悉BASH,所以我天生就有一些批处理文件的语言。


更新

上面的一行命令适用于我的Linux系统。我想问题与我的程序在Windows系统上的进程管理有关。

1 个答案:

答案 0 :(得分:1)

对于bash,它应该像将脚本分组到一个列表中一样简单(如果从shell单独运行)并重定向组{ ... } > out.txt

$ { echo foo; echo bar; echo baz; } > out.txt
$ cat out.txt
foo
bar
baz

如果python脚本本身运行其他python脚本,那么它们甚至不应该是必要的,因为它们都应该从父python进程继承stdout重定向。

我不知道Windows是可以做前者还是对后者有效,但它可能(或者至少可能)。