假設我想從rsgen.py
的輸出被用作我的simulate.py
腳本的references
參數。我該怎麼做?Python argparse和Unix管道參數
在simulate.py
parser.add_argument("references", metavar="RS", type=int, nargs="+", help="Reference string to use")
我試圖
# ./simulate.py references < rs.txt
usage: simulate.py [-h] [--numFrames F] [--numPages P] RS [RS ...]
simulate.py: error: argument RS: invalid int value: 'references'
# ./simulate.py < rs.txt
usage: simulate.py [-h] [--numFrames F] [--numPages P] RS [RS ...]
simulate.py: error: too few arguments
我相信我的管道語法錯了,我該如何解決呢?
Idealy,我想直接管道輸出從rsgen.py
成simulate.py
另一種語法是$ ./simulate.py $(rsgen.py)由恕我直言./rsgen.py $ | ./simulate.py更好。 – 2012-03-28 07:46:20
這是用於將程序輸出轉換爲命令行參數的最簡單且得到最廣泛支持的shell語法。您不必擔心嵌套或其他任何與您的用例有關的事情。但是,如果rsgen的輸出非常巨大,請不要使用它:在這種情況下,使用管道並從標準輸入讀取simulate.py。 – alexis 2012-03-28 12:44:36