2004年03月24日 星期三 13:21
比如 "package com.n.b;\n\n" 我如何取com.n.b呢? 去package空格已经成功了,但是好象不能去\n\n不知道如何做? -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20040324/8545d546/attachment.html
2004年03月24日 星期三 17:03
python-chinese at lists.python.cn, 您好! 我在自己的C++程序中写了一个py用来打印PyErr_Print所返回的错误。 同时在python的封装类中我用PyObject_CallObject在指定的module中调用指定的函数。 但是,如果这个module或是函数中有语法错误时,该错误机制却不能正常工作,为什么? 以下是py代码: import sys, time from cd2 import * # 截获错误信息 class errCatcher: def __init__(self, filename): self.info = '' self.name = filename tmp = open(filename, 'w') tmp.close() def write(self, stuff): self.info += stuff def showmsg(self): f = open(self.name, 'a') f.write(time.ctime()) f.write('\n--------------------------------------------------\n') f.write(self.info) f.write('\n\n') f.close() MsgBox(self.info) self.info = '' # 截获输出信息 class outCatcher: def __init__(self, filename): self.name = filename tmp = open(filename, 'w') tmp.close() def write(self, stuff): f = open(self.name, 'a') f.write(stuff) f.close() sys.stderr = errCatcher('python_err.log') sys.stdout = outCatcher('python_out.log') 以下是C++嵌入python的调用代码: void RunFuncInModule(const Char *szFuncName, const Char *szModuleName) { try { python::handle main_module( python::borrowed( PyImport_AddModule( "__main__" ) ) ); python::handle main_namespace( python::borrowed( PyModule_GetDict( main_module.get() ) ) ); python::handle local_module( python::borrowed( PyImport_ImportModule( const_cast( szModuleName ) ) ) ); #ifdef _DEBUG python::handle ( python::borrowed( PyImport_ReloadModule( local_module.get() ) ) ); #endif python::handle local_namespace( python::borrowed( PyModule_GetDict( local_module.get() ) ) ); PyObject *func = python::expect_non_null( PyDict_GetItemString( local_namespace.get(), const_cast ( szFuncName ) ) ); if ( PyCallable_Check( func ) != 0 ) { python::handle ( PyObject_CallObject( func, NULL ) ); } } catch (python::error_already_set) { python::handle_exception(); PyErr_Print(); PyRun_SimpleString("sys.stderr.showmsg()"); } } 致 礼! 千里马肝 tlovexyj at 21cn.com 2004-03-24
2004年03月26日 星期五 06:08
"千里马肝" <tlovexyj at 21cn.com> writes: > python-chinese at lists.python.cn, 您好! > > 我在自己的C++程序中写了一个py用来打印PyErr_Print所返回的错误。 I can't read the message; most of the characters show up for me as empty rectangles. I suspect that applies to most other participants on the list. Please re-post in plain-ASCII encoded English if you want us to help. -- Dave Abrahams Boost Consulting www.boost-consulting.com
Zeuux © 2024
京ICP备05028076号