Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Python程序的标准输出移动到文件中?_Python_Linux_Bash_Batch File_Cmd - Fatal编程技术网

如何将Python程序的标准输出移动到文件中?

如何将Python程序的标准输出移动到文件中?,python,linux,bash,batch-file,cmd,Python,Linux,Bash,Batch File,Cmd,我使用的是Python2.7,我现在使用的是Windows7,但我通常使用Linux,因此如果能为类UNIX系统提供一个答案,我将不胜感激 我知道,在许多类似UNIX的系统中,可以使用以下命令将标准输出推送到文件: hello_world.py > hello_world_output.txt 这将hello\u world.py的所有标准输出放入hello\u world\u output.txt。根据我五秒钟前刚刚尝试的,这个命令在Windows系统上的工作方式似乎相同 但是,假设我

我使用的是Python2.7,我现在使用的是Windows7,但我通常使用Linux,因此如果能为类UNIX系统提供一个答案,我将不胜感激

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

hello_world.py > hello_world_output.txt
这将
hello\u world.py
的所有标准输出放入
hello\u world\u output.txt
。根据我五秒钟前刚刚尝试的,这个命令在Windows系统上的工作方式似乎相同

但是,假设我有一个包含许多Python文件的程序,我想将它们的所有标准输出推送到某个
output.txt
,或
log.txt
,等等。我该怎么做呢?我尝试了命令
main.py>output.txt
,但这只推送
main.py
的标准输出,而不是我的
.py
文件的其余部分

在Linux和Windows系统中,如何将多个文件程序(包括但不限于Python程序)的标准输出推送到单个文件中?我熟悉BASH,因此我天生也对批处理文件行话有点了解


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

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

$ { echo foo; echo bar; echo baz; } > out.txt
$ cat out.txt
foo
bar
baz
如果python脚本本身运行其他python脚本,那么这应该是不必要的,因为它们都应该从父python进程继承
stdout
重定向


我不知道Windows是否可以做前者,或者对于后者是否也可以做相同的事情,但这可能(或者至少可能是可能的)。

在python 3中可以做的一件事是打印到文件对象。例如,如果您有需要推送到文件的输出,请执行打印(args,file=f1)。此功能位于
\uuuu future\uuuu
模块中,可以导入到python 2.7中。@gjdanis谢谢,但我想使用标准输出来完成此操作。--我不想修改任何代码。我也不是说特定于Python;我也希望对其他语言执行此操作。您在main.py中运行其他文件时做了什么?@Wooble我正在导入它们并调用它们的函数,创建它们的对象,在一些文件中,我打印了一些我想放在
output.txt
中的东西。我感觉他在做类似于
os.system
subprocess.Popen的事情。是的,这在我的Linux系统上运行。但是使用最初的一行命令也可以工作,所以我认为问题实际上只是我的程序在Windows上的进程管理有些愚蠢,所以standard out变得一团糟。就像我说的Windows可能没有linux那样的
stdout
继承行为。因此,python运行的脚本可能看不到重定向。你是如何运行脚本的?