python中mailbox类在2.4和2.5之间的区别及解决办法
[| 2010/09/20 22:55]
今天发现原来python中内置了mailbox类,可以解析linux系统邮箱。并附带了详细的说明,汗,我花好几天事件去看源码,python文档里几句话就说明白了。
由于现在还是python 2.5及以下版本的天下,所以我用的python手册也是2.5版本的,在里面查到mailbox模块中有mbox类,专门解析mbox格式存储的邮箱,准备拿来用。结果去开发环境上一跑,显示没有该模块,百思不得其解。后来查了一下,原来linux上python还是2.4版本,2.4版本中的mailbox模块是很弱小的。由于程序要在2.4平台上运行,所以要考虑问题的解决方法。
假如自己实现mbox类的话,太过麻烦,并且对于2.5平台上来说这个工作毫无用处。于是决定利用2.5版本上现有的mailbox模块。
把2.5版本的mailbox.py拷贝到当前目录下,改名为mailbox_v25.py。
在程序中使用如下方法,判断版本是不是2.5以下,假如是的话,导入mailbox_v25.py,假如不是的话,导入系统默认模块即可。
if (int)(map(str,sys.version_info)[1])<5:
import mailbox_v25 as mailbox
else:
import mailbox
ok,问题解决。以后假如版本升级,不再支持python2.4,那么可以移除mailbox_v25.py以精简包。
由于现在还是python 2.5及以下版本的天下,所以我用的python手册也是2.5版本的,在里面查到mailbox模块中有mbox类,专门解析mbox格式存储的邮箱,准备拿来用。结果去开发环境上一跑,显示没有该模块,百思不得其解。后来查了一下,原来linux上python还是2.4版本,2.4版本中的mailbox模块是很弱小的。由于程序要在2.4平台上运行,所以要考虑问题的解决方法。
假如自己实现mbox类的话,太过麻烦,并且对于2.5平台上来说这个工作毫无用处。于是决定利用2.5版本上现有的mailbox模块。
把2.5版本的mailbox.py拷贝到当前目录下,改名为mailbox_v25.py。
在程序中使用如下方法,判断版本是不是2.5以下,假如是的话,导入mailbox_v25.py,假如不是的话,导入系统默认模块即可。
if (int)(map(str,sys.version_info)[1])<5:
import mailbox_v25 as mailbox
else:
import mailbox
ok,问题解决。以后假如版本升级,不再支持python2.4,那么可以移除mailbox_v25.py以精简包。