【问题标题】:In Windows' cmd.exe shell, how can I pipe the output of a Perl script to a Python script?在 Windows 的 cmd.exe shell 中,如何将 Perl 脚本的输出通过管道传输到 Python 脚本?
【发布时间】:2015-02-07 15:08:15
【问题描述】:

假设我有一个示例 perl 程序,我可以使用以下命令从 CMD(Windows 7)运行:

perl hello.pl

这个输出:

世界你好!

我可以将它放在一个文件中:

perl hello.pl > output.txt

但是,我想做的是将它提供给另一个应用程序,为此我需要将它提供给 Python 应用程序。我使用以下语法为我的 Python 应用程序提供参数:

python python.py Arg1 Arg2 Arg3

假设我的 Perl 程序只提供一个参数,有没有办法在 Python 应用程序完成这个参数后运行它?

【问题讨论】:

  • 不是重复的,所有问题都不起作用,因为我正在使用 CMD。至少,那里给出的三个答案都不起作用
  • 让你的python程序从sys.stdin读取perl程序的输出并将perl程序的stdout通过管道传递给它:perl hello.pl | python python.py Arg1 Arg2 Arg3
  • 等等,你可以在 cmd 中进行管道传输吗?好的,感谢您的解决方案。考虑到这是重复的,我应该删除吗?
  • @martineau 我重新打开了这个问题,以便您可以将您的评论变成答案。 @Popey:当然你可以输入cmd ...你去哪儿了?
  • 谢谢@Sinan(和 Popey)。

标签: python perl cmd


【解决方案1】:

让您的 python 程序从sys.stdin 读取 perl 程序的输出并将 perl 程序的标准输出通过管道传送给它:

perl hello.pl | python python.py Arg1 Arg2 Arg3

我从一个 Python 程序到另一个 Python 程序进行了测试,然后在第二个 Python 程序中进行了测试:

import sys

inp = sys.stdin.readline()
print(inp)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多