如何使用管道编写Python exe程序?

时间:2015-06-20 17:32:17

标签: python python-2.7 batch-file command-line pipe

Python新手在这里。

  1. 我创建了一个Python程序msg.py,它输出一条消息(Hello,World)。

  2. 我创建了一个Python程序id.py,它读取输入并输出它。

  3. 使用py2exe我为每个人创建了一个可执行文件:msg.exeid.exe

  4. 我创建了一个DOS批处理文件,将PATH设置为dist的{​​{1}}文件夹和msg.exe的{​​{1}}文件夹。

  5. 然后我将其添加到DOS批处理文件中:

    msg | ID

  6. 当我运行批处理文件时,收到此错误消息:

    dist

    我猜测管道符号没有将id.exe的输出提供给Traceback (most recent call last): File "id.py", line 4, in <module> IndexError: list index out of range 的输入。这是对的吗?

    1. 然后我把它放在批处理文件中:

      id&lt; MSG

    2. 当我运行批处理文件时,收到此错误消息:

      msg.exe

      我真的希望步骤id.exe能够奏效。也就是说,我真的希望能够使用管道符号来编写程序,如下所示:

      Access is denied.
      

      理想情况下,5A | B | C | ... A,...可以是用各种语言编写的可执行文件,例如BC等。< / p>

      如何让它发挥作用?

      以下是我所做的细节。我在Windows 7上运行。

      以下是Python

      C

      以下是msg.py

      import stdio
      
      stdio.writeln('Hello, World')
      

      这是我的DOS批处理文件:

      id.py

1 个答案:

答案 0 :(得分:3)

sys.argv用于命令行参数(id.py a b c)。

要从管道中读取,您需要在id.py中使用sys.stdin.read()

修改:另请参阅:https://stackoverflow.com/a/7608205/478656