2016-11-15 7 views

答えて

1

私は実際に<()の動作を理解していなかったので、この質問をお寄せいただきありがとうございます。しかし、実際には、サブコマンドの情報をパイプして、そのファイル記述子の名前を返す一時的な仮想ファイル記述子を作成します。あなたの質問に答えるために、

|'thing.py'| 
|'/proc/self/fd/11'| 
|'/proc/self/fd/12'| 

だから、最終的に:それはpython3 thing.py <(cat a.txt) <(cat b.txt)のように呼び出されたとき

import sys 
for arg in sys.argv: 
    print('|{}|'.format(repr(arg))) 

が、あなたは出力のようなものがあることがわかります。私が何を意味するかを確認するには、このPythonプログラムを見てそのサブプロセスからデータを読み取るために必要な作業は、他のファイルと同じようにそのファイル記述子を開くだけです。たとえば、次のように

のように私に出力を与える
with open(sys.argv[1]) as f:                   
    for line in f:                      
     print(line.strip()) 

:助け

A 
B 
C 

(A.TXTのマッチング内容)

願っています!

関連する問題