2015-09-20 50 views
0

我想在Windows命令行中运行python脚本。脚本正在成功执行。但是当我尝试将输出重定向到文件时,它仍然在控制台中打印。从命令行窗口运行python不工作

python hello.py -o hello.out 

我是否做错了什么?

回答

1

,我认为你应该这样做:

**编辑** 另外一个问题是问标准输入。

在命令行,你可以做这样的事情:

python foo.py <in.txt> out.txt 

里面foo.py你需要确保你是从什么地方抓标准输入,所以做这样的事情:

import fileinput 
for line in fileinput.input(): 
    print(line) 
    # do stuff with each line of input 
+0

如何在命令行中将标准输入更改为给定文件?就像'python hello.py -i hello.in -o hello.out' –

+0

试试这个,让我知道它是否工作'python foo.py < in.txt > out.txt'。我编辑了我的帖子以反映此更新。 – idjaw

+0

雅,它的工作。谢谢 –

0

除非您的脚本本身支持-o,否则我并不期望该标志可以执行任何操作。 python没有这样的选项,如果有的话,你必须把它放在你的脚本的名字之前,这样它才能被识别为解释器的选项,而不是你的脚本。

这是一篇关于如何在Windows中重定向输出的好文章:https://support.microsoft.com/en-us/kb/110930。令人惊讶的是,它和Linux一样,使用>这个字符。你举的例子应该写成要么

python hello.py > hello.out 2>&1 
如果要包括标准错误,以及在你的文件标准输出