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中的内容)
希望帮助!