0

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

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

但没有任何效果。我尝试使用 <& 变体,同时放弃对 python.exe 的显式调用。我也尝试过各种管道,但似乎没有任何效果。

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

提前致谢。

4

1 回答 1

0

The problem is not with how you are running it from the command line, but rather how you have argparse set up in your script. You are definitely redirecting the file properly to 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()

Output

C:\> python foo.py < input.txt
foo
于 2012-08-24T17:58:20.717 回答