【发布时间】:2021-12-12 23:38:32
【问题描述】:
这个命令python test.py <(cat file1.txt)怎么没有相应的工作。我可以发誓我以前有这个工作。基本上,我想将 cat 命令的输出作为 python 脚本的输入。
这个命令
cat file1.txt | python test.py
工作正常,输出:
reading: file11
reading: file12
基于以下脚本/文件。
我想让它工作的原因是因为我真的想输入 2 个输入文件,比如
python test.py <(cat file1.txt) <(cat file2.txt)
并且想要一些 python 输出,例如:
reading: file11 file21
reading: file12 file22
我知道这是一个非常简单的示例,我可以在 python 脚本中读入或open() 两个文件并相应地进行迭代。这是我当前脚本的简化版本,cat 命令在技术上是另一个执行其他操作的可执行文件,因此它不像读取/打开要读取的文件那么容易。
示例脚本/文件:
test.py:
import sys
for line in sys.stdin:
print("reading: ", line.strip())
sys.stdin.close()
file1.txt:
file11
file12
file2.txt:
file21
file22
【问题讨论】:
-
你可以做
cat file1.txt file2.txt | python test.py -
仅供参考的猫函数可以带更多参数
-
对,
cat可以获取更多文件,但就像我说的那样。cat实际上只是一个示例,它确实是另一个脚本/可执行文件,所以我希望<() <()格式可以工作 -
一个进程只有一个标准输入,所以
<() <()格式不能工作。 -
也许你应该展示一个实际的例子来说明为什么
cat file1.txt file2.txt | python test.py是不够的。