输入重定向为python 2.7

时间:2012-08-24 17:46:42

标签: windows python-2.7 cmd command-line-arguments argparse

我在python 2.7中有一个程序,我似乎无法在Windows XP上使用重定向输入在命令提示符下运行它。我正在尝试做类似的事情:

C:\>python foo.py < input.txt

但没有任何作用。我尝试过使用&lt;&amp;变化以及不显式调用python.exe。 我也试过各种各样的滚边,但似乎没什么用。

我可以从命令提示符运行python程序并解析参数输入就好了。问题是我无法通过简单的.txt文件输入其中一个参数。

提前致谢。

1 个答案:

答案 0 :(得分:0)

问题不在于如何从命令行运行它,而在于如何在脚本中设置argparse。您肯定正确地将文件重定向到stdin。

<强> input.txt中

foo

<强> foo.py

import argparse, sys

parser = argparse.ArgumentParser()
parser.add_argument('infile', nargs='?', 
                    type=argparse.FileType('r'), 
                    default=sys.stdin)

opts = parser.parse_args()

print opts.infile.read()

<强>输出

C:\> python foo.py < input.txt
foo