【问题标题】:Run Python script with Ruby popen3 without showing terminal使用 Ruby popen3 运行 Python 脚本而不显示终端
【发布时间】:2015-10-01 18:34:06
【问题描述】:

我目前正在使用以下 Ruby 代码运行用 Python 编写的后期处理脚本:

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

这可以正常工作,但它当前会打开一个黑色终端窗口,该窗口在后期处理完成之前一直保持打开状态。我将如何不显示此窗口?我宁愿一切都在后台默默地发生。

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

【问题讨论】:

标签: python ruby


【解决方案1】:

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

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

【讨论】:

  • 在另一台电脑上试过了,除了我启动脚本的那个窗口之外没有其他窗口,它显示了我放的行,但是当我用 ruby​​w.exe 启动脚本时它确实如此,也许这就是问题 ?还可以尝试我在这里建议的拖放路径。 stackoverflow.com/questions/1155534/…
猜你喜欢
  • 2014-12-12
  • 2013-01-26
  • 1970-01-01
  • 1970-01-01
  • 2014-01-18
  • 2017-09-04
  • 2020-09-01
  • 2019-09-23
  • 1970-01-01
相关资源
最近更新 更多