小编use*_*168的帖子

从Python子进程返回值

我想从python子进程获取输出(打印语句)和返回状态以及显示日志信息.我在Windows XP上使用Python 2.5.我如何获得返回码?在这个提取中,我正在读取输出,以便我可以将其重定向到TextCtrl在单独的线程中的wxPython 中显示.

self.myproc.poll()                      
if self.myproc.returncode is None:             
    # Still running so check stdout
    txt = self.myproc.stdout.read(self._readblock)     
    if txt:        
        # Add to UI's update queue
        self._parent.AppendUpdate(txt)        
    else:   
        break     
Run Code Online (Sandbox Code Playgroud)

python subprocess

8
推荐指数
1
解决办法
6094
查看次数

将 python 列表转换为浮点数

我有从硬件读取并返回的库函数

value = readregister(registerindex,numbytes)
Run Code Online (Sandbox Code Playgroud)

其中value是 python 列表。

如果numbytes是4,则返回完整的返回数

value[0],value[1],value[2] and value[3]   
Run Code Online (Sandbox Code Playgroud)

寄存器中的实际值是浮点数。那么如何将这个 4 个元素的列表值转换为 python 浮点数呢?

python floating-point

3
推荐指数
1
解决办法
2093
查看次数

python登录到文件以及wxpython txt ctrl

如何登录文件以及wxpython txt ctrl?

背景我有基于wxpython GUI的应用程序,它枚举python测试文件并执行它们.在http://broadcoder.blogspot.com/2009/10/redirecting-python-logging-to.html的帮助下,我能够将python日志消息重定向到txtctrl.但是,我也想将日志消息重定向到日志文件.我导入我的测试文件,如下所示:

     logging.info('Started')
     testid = __import__(str)
     reload(testid)

     testOut = testid.main()
Run Code Online (Sandbox Code Playgroud)

在我的每个测试文件中,我只使用导入日志记录,我的日志消息被重定向到txt ctrl.但是,我还希望测试日志消息也可以根据文件名重定向到日志文件.如何将日志消息重定向到两者?如果我在我的测试文件中使用logging.basicConfig消息仍然仅指向文本ctrl.我在其中导入的TestGUI.py说5个python测试文件.在我的测试文件文件中,我只是在我的TestGUI.py文件中设置记录器时使用导入记录

    self.logr = logging.getLogger('')
    self.logr.setLevel(logging.INFO)
    hdlr = WxLog(self.log)
    hdlr.setFormatter(logging.Formatter('%(message)s '))
    self.logr.addHandler(hdlr)
Run Code Online (Sandbox Code Playgroud)

在我的测试文件中,我做了类似这样的事情:

      logger = logging.getLogger('')   
      fh = logging.FileHandler("log.html",mode='w')
      formatter = logging.Formatter('%(message)s')
      fh.setFormatter(formatter)
      logger.addHandler(fh)
      a= 5
      b= 6

      logging.info('a=5')
      logging.info('b=6')
      c= a+b
      logging.info('adding b and  c')
      fh.close()
Run Code Online (Sandbox Code Playgroud)

当我多次运行此测试时,我得到ValueError:关闭文件的I/O操作.

python logging wxpython

1
推荐指数
1
解决办法
685
查看次数

从 python 将指针值传递给 C 函数

我有一个 C 函数,它接受一个 int 并通过填充 b 中的值来返回

typedef   uint8_t State;
#define   STATE_POWERDOWN               ((State) 0x00) 
#define   STATE_SLEEP                   ((State) 0x10) 


int Val_GetStatus(int a , State *b)
Run Code Online (Sandbox Code Playgroud)

该函数与其他函数一起从 C DLL 中导出。

我从 python 中调用这个函数。虽然我能够连接 DLL,但我不明白如何在 python 中将变量传递给该函数?

def Acme_getDeviceStatus(self,DeviceStatus):
    # b 
    self.device.Val_GetStatus(0,b)  # how to pass and get value in b
    # DeviceStatus = b
    # return DeviceStatus somehow 
Run Code Online (Sandbox Code Playgroud)

c python

1
推荐指数
1
解决办法
2862
查看次数

标签 统计

python ×4

c ×1

floating-point ×1

logging ×1

subprocess ×1

wxpython ×1