使用线程守护程序将变量的值从构造函数的方法返回到另一个方法

本地英雄

我在以下部分中包含脚本的这一部分python

class Filtro:
    def __init__(self,cmd):
       def exec_cmd():
            proc = subprocess.Popen([cmd, '-'],
                            stdin=subprocess.PIPE,
                        )
            return proc

       self.thr=threading.Thread(name="Demone_cmd",target=exec_cmd)
       self.thr.setDaemon(True)
       self.proc=self.thr.start()

    def inp(self,txt):
       f=open(txt,"r")
       self.proc.communicate(f.read())
       f.close()


filtro=Filtro(sys.argv[1])
filtro.inp(sys.argv[2])

我想要方法的返回值,exec_cmdproc方法中的返回值inp,但是当前代码无法实现此目的,方法之间的通信不起作用。

贾普维

问题的直接原因是self.proc = self.thr.start():该start()方法启动线程,没有返回值。因此self.proc设置None为该位置,self.proc.communicate(f.read())将导致异常。

通常,在代码段中使用线程似乎有些过大,subprocess.Popen()它本身已经启动了一个与脚本并行运行的进程,并且您可以使用其communicate()方法将数据发送到该进程并检索该进程的结果(docs)。

使用的一个重要细节是使用communicate()stdout和stderr的管道启动该过程,否则您将无法获得该过程的结果。因此,如果将您的构造函数替换为以下内容,则应该能够在您的inp()方法中看到处理结果

def __init__(self,cmd):
    self.proc = subprocess.Popen([cmd, '-'], 
                                stdin=subprocess.PIPE,
                                stdout=subprocess.PIPE, 
                                stderr=subprocess.PIPE)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将值从Firebase JS回调方法(DAL)返回到另一个函数(控制器)

来自分类Dev

如何使用phonegap android在函数中将值从值返回到另一个

来自分类Dev

使用服务方法的返回值构造另一个服务?

来自分类Dev

将布尔值从一个函数返回到另一个函数-VBA

来自分类Dev

在powershell中将变量从一个函数返回到另一个函数

来自分类Dev

将一个方法的返回值解析为另一个函数的两个参数?

来自分类Dev

Python:将变量从一个函数返回到另一个函数,而无需重新运行第一个函数

来自分类Dev

如何使用include函数通过php变量将数据库查询的结果返回到另一个页面

来自分类Dev

使用构造函数将驱动程序实例传递给另一个类

来自分类Dev

将Firebase数据库阵列返回到另一个函数,但返回空

来自分类Dev

将函数的静态数组返回到main()函数中的另一个数组

来自分类Dev

函数将数组返回到另一个函数>未捕获的TypeError

来自分类Dev

我如何将类方法传递给另一个函数,例如线程构造函数中发生的情况

来自分类Dev

如何通过多处理将布尔值从一个函数返回到另一个函数?

来自分类Dev

Python 函数将类型作为参数返回到另一个脚本

来自分类Dev

如何将字符串从一个函数返回到另一个函数?

来自分类Dev

将一个函数中的局部变量返回给另一个函数

来自分类Dev

模拟将方法调用返回到另一个对象的方法

来自分类Dev

使用原型从另一个构造函数继承与在继承的构造函数内部使用apply方法之间的区别

来自分类Dev

使用原型从另一个构造函数继承与在继承的构造函数内部使用apply方法之间的区别

来自分类Dev

根据顺序将匹配的一个列表值返回到另一个列表的值

来自分类Dev

使用ProcessingJS将返回值从一个函数传递到另一个函数的语法?

来自分类Dev

如何使用itertools将返回的值从一个函数传递给另一个函数?

来自分类Dev

在辅助方法中操作局部变量并返回另一个值

来自分类Dev

将WP移至另一个域->无法使用函数返回值

来自分类Dev

libtorch:为什么我的张量从一个方法返回到另一个方法时会改变值?

来自分类Dev

使用class()方法时从函数中的另一个函数访问变量

来自分类Dev

使用class()方法时从函数中的另一个函数访问变量

来自分类Dev

实现从另一个构造函数调用构造函数的最佳方法?

Related 相关文章

  1. 1

    将值从Firebase JS回调方法(DAL)返回到另一个函数(控制器)

  2. 2

    如何使用phonegap android在函数中将值从值返回到另一个

  3. 3

    使用服务方法的返回值构造另一个服务?

  4. 4

    将布尔值从一个函数返回到另一个函数-VBA

  5. 5

    在powershell中将变量从一个函数返回到另一个函数

  6. 6

    将一个方法的返回值解析为另一个函数的两个参数?

  7. 7

    Python:将变量从一个函数返回到另一个函数,而无需重新运行第一个函数

  8. 8

    如何使用include函数通过php变量将数据库查询的结果返回到另一个页面

  9. 9

    使用构造函数将驱动程序实例传递给另一个类

  10. 10

    将Firebase数据库阵列返回到另一个函数,但返回空

  11. 11

    将函数的静态数组返回到main()函数中的另一个数组

  12. 12

    函数将数组返回到另一个函数>未捕获的TypeError

  13. 13

    我如何将类方法传递给另一个函数,例如线程构造函数中发生的情况

  14. 14

    如何通过多处理将布尔值从一个函数返回到另一个函数?

  15. 15

    Python 函数将类型作为参数返回到另一个脚本

  16. 16

    如何将字符串从一个函数返回到另一个函数?

  17. 17

    将一个函数中的局部变量返回给另一个函数

  18. 18

    模拟将方法调用返回到另一个对象的方法

  19. 19

    使用原型从另一个构造函数继承与在继承的构造函数内部使用apply方法之间的区别

  20. 20

    使用原型从另一个构造函数继承与在继承的构造函数内部使用apply方法之间的区别

  21. 21

    根据顺序将匹配的一个列表值返回到另一个列表的值

  22. 22

    使用ProcessingJS将返回值从一个函数传递到另一个函数的语法?

  23. 23

    如何使用itertools将返回的值从一个函数传递给另一个函数?

  24. 24

    在辅助方法中操作局部变量并返回另一个值

  25. 25

    将WP移至另一个域->无法使用函数返回值

  26. 26

    libtorch:为什么我的张量从一个方法返回到另一个方法时会改变值?

  27. 27

    使用class()方法时从函数中的另一个函数访问变量

  28. 28

    使用class()方法时从函数中的另一个函数访问变量

  29. 29

    实现从另一个构造函数调用构造函数的最佳方法?

热门标签

归档