我正在使用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.txt
或log.txt
等。我该怎么做?我已尝试使用main.py > output.txt
命令,但这只会推送main.py
的标准输出,而不是其余的.py
文件。
在Linux和Windows系统中,如何将多文件程序(包括但不限于Python程序)的标准输出推送到单个文件?我熟悉BASH,所以我天生就有一些批处理文件的语言。
上面的一行命令适用于我的Linux系统。我想问题与我的程序在Windows系统上的进程管理有关。
答案 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是可以做前者还是对后者有效,但它可能(或者至少可能)。