首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不显示终端的情况下使用Ruby popen3运行Python脚本

在不显示终端的情况下使用Ruby popen3运行Python脚本
EN

Stack Overflow用户
提问于 2015-09-22 04:42:33
回答 1查看 442关注 0票数 1

我目前正在运行一个用Python编写的后处理脚本,其中包含以下Ruby代码:

代码语言:javascript
复制
module Python

    require "open3"

    def self::runScript(script)
        Open3.popen3(script) do |stdin, stdout, stderr|
          stdout.read.split("\n").each do |line|
            puts "[python] stdout: #{line}"
          end
          stderr.read.split("\n").each do |line|
            puts "[python] stderr: #{line}"
          end
        end
        puts  'Script completed.'
    end
end

这工作得很好,但它目前会打开一个黑色的终端窗口,该窗口将一直打开,直到post过程完成。我该如何处理不显示此窗口的问题呢?我更希望一切都在后台静悄悄地发生。

为了澄清,我需要能够静默地从Ruby运行Python脚本。仅限Windows。

EN

回答 1

Stack Overflow用户

发布于 2015-09-22 15:52:18

我通常使用以下代码来运行外部程序并捕获输出,没有可见的窗口或任务栏按钮。是的,我在窗户上。它不使用popen3,但你为什么要使用,IO是内置的,为什么要使用gem?

代码语言:javascript
复制
command = %Q{cmd.exe /C "dir /s"}
IO.popen(command+" 2>&1") do |pipe|
  pipe.sync = true
  lijn_nr = 0
  while lijn = pipe.gets
    puts lijn
  end
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32704215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档