Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
变量更改时的python信号?_Python_Variables - Fatal编程技术网

变量更改时的python信号?

变量更改时的python信号?,python,variables,Python,Variables,我有一个每秒计算一个变量的脚本(我的程序每秒读取脚本bash的输出并解释数据)。是否存在一种方法来检测该var是否发生变化 这是我的代码的一部分,文本是ffmpeg或avconv输出,从vte终端读取: #Terminal def terminal(self): self.v = vte.Terminal() self.v.connect ("child-exited", lambda term: self.verif(self, my_class))

我有一个每秒计算一个变量的脚本(我的程序每秒读取脚本bash的输出并解释数据)。是否存在一种方法来检测该var是否发生变化

这是我的代码的一部分,文本是ffmpeg或avconv输出,从vte终端读取:

#Terminal
def terminal(self):
        self.v = vte.Terminal()
        self.v.connect ("child-exited", lambda term: self.verif(self, my_class))
        self.v.connect('contents-changed', self.term_output)
        [...]    
def term_output(self, my_class, donnees=None):
        text = str(self.v.get_text(lambda *a: True).rstrip())
        [...] # decode the text
        print "time", self.time
        print "duration", self.duration
vte终端中的回路(avconv输出):

持续时间:00:00:23.00,开始时间:0.100511,比特率:0 kb/s
输出#0,matroska,发送至“/media/guillaume/XT/Telechargements/uzz/la#u qualite_de_l_air_1000019643.mkv”:
按[q]停止,按[?]获取帮助
帧=589 fps=115 q=-1.0 Lsize=2191kB时间=00:00:23.79比特率=754.3kbits/s
火车站
Votre Fichier最终测试:
/media/guillaume/XT/Telechargements/uzz/la_qualite_de_l_air_1000019643.mkv
输出示例(vte输出的时间和持续时间):

time 5.1
持续时间23.0
时间6.1
持续时间23.0
时间9.1
持续时间23.0
时间14.1
持续时间23.0
时间14.1
持续时间23.0
时间16.1
持续时间23.0
时间18.1
持续时间23.0
时间19.1
持续时间23.0
时间21.1
持续时间23.0
时间23.1
持续时间23.0
时间23.1
持续时间23.0
时间23.1
持续时间23.0
时间23.1
持续时间23.0
时间23.1
持续时间3960.0#是否检测到此更改?(对应于avconv的第二个输出)
时间1.1
持续时间3960.0
时间7.1
持续时间3960.0
时间10.1
持续时间3960.0
时间20.1
持续时间3960.0
时间20.1
持续时间3960.0
添加标志变量(全局或局部,取决于所需的范围)

将值指定给开始/第一个循环中的标志

将此标志的值与变量进行比较,如果它发生了变化(可以是信号,也可以是您需要的打印)


您能提供一个具有这种行为的程序并清楚地向我们解释问题吗?解释起来有点复杂,我的程序每秒读取脚本bash的输出并解释数据。很抱歉,没有看到该程序,我们无法帮助您解决问题:(好的,我会尝试在我的代码中添加一部分。我不认为这样更清楚?
time_val = 'init';

def term_output(self, my_class, donnees=None):
    text = str(self.v.get_text(lambda *a: True).rstrip())
    [...] # decode the text
    if (time_val == 'init'):
        time_val = self.time
    if self.time != time_val:
        print "The value of time has changed from " + str(time_val) + " to " + str(self.time)
    print self.time