python - 在新的 subprocess.Popen 对象列表上使用 poll()

标签 python list popen

我正在尝试编写一些代码来轮询这样创建的 subprocess.Popen 对象(?)列表:

self.processList = [subprocess.Popen for i in range(8)]

我的代码将创建新的 subprocess.Popen 对象并将它们分配到列表中的不同位置。然后我可以成功地使用 poll()。但是在任何代码发生之前,无法成功轮询我的新对象列表。有没有办法做到这一点?我轮询列表以启动下一个过程,因此我希望所有这些功能都能与上面的代码行一起正常工作。这是我在将任何内容分配给上述代码片段之前要完成的工作:

print self.processList[position].poll()

我收到的错误是:

line 79, in jobQueue print self.processList[position].poll() TypeError: unbound method poll() must be called with Popen instance as first argument (got nothing instead)

如前所述,一旦我创建了一个新对象并将其放入我的列表中,我就不会遇到这个问题。我不在乎 self.processList[0].poll() 返回什么,只要它返回一些东西并且一开始就不会爆炸。非常感谢您的帮助。

谢谢

最佳答案

您的列表实际上包含 Popen 类,而不是对象:

>>> processList = [subprocess.Popen for i in range(1)]
>>> processList
[<class 'subprocess.Popen'>]

需要调用subprocess.Popen()获取对象:

>>> processList = [subprocess.Popen('ls') for i in range(1)]
...
>>> processList
[<subprocess.Popen object at 0x7f31b77e4550>]

关于python - 在新的 subprocess.Popen 对象列表上使用 poll(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30904008/

相关文章:

python - 函数在数组的单个列中的每一行上迭代工作 - numpy

css:水平列表定位问题仅适用于 2 个或更多 li 元素

python - 如何关闭 Python TCPServer 或 HTTPServer 或 SimpleHTTPServer?

python: raise child_exception, OSError: [Errno 2] 没有那个文件或目录

python - 当txt文件更改时运行python脚本

python - numpy.array() 中的 dtype 参数

访问列表元素时出现 Java ConcurrentModificationException

python - 如何将列表与常见元素合并,其中这些元素本身是列​​表/元组?

c++ - pclose() 返回的管道终止状态是否在所有平台上都左移了八位?

python - (date, day_of_week) 元组列表