0
如何訪問Python中的comm
命令等附加文件流?如何在Python中訪問unix shell的其他文件流?
comm -23 <(sort -n Asub|uniq) <(sort -n A|uniq)
我知道,我可以通過sys.stdin
訪問標準輸入,但如何訪問其他輸入流?
如何訪問Python中的comm
命令等附加文件流?如何在Python中訪問unix shell的其他文件流?
comm -23 <(sort -n Asub|uniq) <(sort -n A|uniq)
我知道,我可以通過sys.stdin
訪問標準輸入,但如何訪問其他輸入流?
感謝您提出這個問題,因爲我實際上並不瞭解我自己的行爲<()
。然而,在一些挖掘之後,它看起來實際上會創建一個臨時虛擬文件描述符,將它從子命令中輸入信息,然後返回該文件描述符的名稱。要明白我的意思,看看這個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中的內容)
希望幫助!