我想从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) 我有从硬件读取并返回的库函数
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 浮点数呢?
如何登录文件以及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操作.
我有一个 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)