-->

管STDIN到本身被输送到Python解释器的脚本?(Pipe STDIN to a script

2019-09-22 09:12发布

我需要实现一个SVN pre-commit钩子,其执行本身存储在SVN的脚本。

我可以使用svn cat命令管道将脚本Python解释器,如下所示:

svn cat file://$REPO/trunk/my_script.py | python - --argument1 --argument2

然而, my_script.py本身需要在标准输入到管道输送数据。

数据不存储在一个文件; 它被存储在网络上。 我宁愿不具有对数据下载到临时文件,因为通常我会呢管道Python程序:

curl http://example.com/huge_file.txt | python my_script.py

我不知道如何这两个管道的结合。

Answer 1:

我想通了,如何做到这一点,而无需创建任何临时文件,而不是严格按照“管道”。

curl http://example.com/huge_file.txt | python <(svn cat file://$REPO/trunk/my_script.py) --argument1 --argument2

我用“匿名文件描述符”构建猛砸,它能够代替任何文件路径中使用。

例如python my_script.py将相当于python <(cat my_script.py)



Answer 2:

我不认为这是可能的。 你喂脚本作为标准输入到Python解释器。 这意味着,Python解释已连接到的输入流。 我不觉得剧本内容可以创建第二个标准输入进行读取。



文章来源: Pipe STDIN to a script that is itself being piped to the Python interpreter?