2012-08-24 48 views
0

我有一個Python 2.7中的程序,我似乎無法在Windows XP上使用重定向輸入在命令提示符下運行它。我正在嘗試這樣做:Python的輸入重定向2.7

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

但沒有任何效果。我已經嘗試使用< &變體,同時不顯式調用python.exe。 我試過管道的變化,但似乎沒有工作。

我可以從命令提示符運行python程序並解析參數輸入就好了。問題是我不能讓其中一個參數從簡單的.txt文件輸入。

在此先感謝。

+0

什麼是你argparse配置是什麼樣子? – jdi

+0

'<'不傳參數,它設置進程的'stdin'。 – geoffspear

回答

0

問題不在於如何從命令行運行它,而是如何在腳本中設置argparse。你肯定會將文件正確地重定向到標準輸入。

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