2016-11-15 31 views

回答

1

感謝您提出這個問題,因爲我實際上並不瞭解我自己的行爲<()。然而,在一些挖掘之後,它看起來實際上會創建一個臨時虛擬文件描述符,將它從子命令中輸入信息,然後返回該文件描述符的名稱。要明白我的意思,看看這個Python程序:

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

時會調用它像python3 thing.py <(cat a.txt) <(cat b.txt),你應該看到輸出是一樣的東西:

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

所以最後,回答你的問題,您需要做的是從該子進程讀取數據,就像打開其他文件一樣簡單地打開該文件描述符。例如:

with open(sys.argv[1]) as f:                   
    for line in f:                      
     print(line.strip()) 

這給了我一個輸出類似:

A 
B 
C 

(匹配a.txt中的內容)

希望幫助!

相關問題