我目前正在使用以下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。
答案 0 :(得分:1)
我通常使用以下代码来运行外部程序并捕获输出,没有可见窗口或任务栏按钮。是的,我在窗户上。 它没有使用popen3,但你为什么要建立IO,为什么要使用宝石?
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