如何将Ruby的IO.popen调用转换为Python的subprocess.Popen调用?

0 投票
2 回答
1035 浏览
提问于 2025-04-15 20:56

我看过文档,也在REPL里尝试了很多东西,还在网上搜索过,但我就是搞不懂Python里的subprocess.Popen是怎么工作的。

这是我正在使用的一段Ruby代码:

IO.popen("some-process") do |io|
  while(line = io.gets)
    # do whatever with line
  end
end

我该怎么用subprocess.Popen把它转换成Python代码呢?

2 个回答

0
import subprocess

process = subprocess.Popen(['ls',], stdout=subprocess.PIPE)
print process.communicate()[0]

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

2

可能是你 Ruby 代码在 Python 中最简单的“近亲”:

>>> import subprocess
>>> io = subprocess.Popen('ls', stdout=subprocess.PIPE).stdout
>>> for line in io: print(line.strip())

撰写回答