python学习
这篇文章用来存放一些python学习中遇到的问题,以及解决过程。大家如果遇到问题也可以留言,希望能够帮助到大家。
一、python配置文件用法
在开发的过程中通常需要用配置文件来支持一些可配置化操作。
1、配置文件格式
[email] protocol = pop encrypt_type = ssl ##if domain exist ip is not neccessry ip = ##email server port,diffrent email server and protocol have unique port,make sure it's correct. port = 995 domain = pop3.live.com username = yiquriyue@outlook.com password = Thepassword isexchange = True [analyse] isopen = Flase
上面是一个邮箱服务器的配置文件,可以在函数中直接调用,但是每次读该文件显然是一件很鸡肋的事情,这里我用来python自带的一个配置文件工具,将其封装在一个函数中
# -*- coding: utf-8 -*- import ConfigParser,os #TODO(yiquriyue):WORKDIR为前根目录的地址
from getworkdir import WORKDIR confpath = os.path.join(WORKDIR,"conf","base.cfg") #TODO(yiquriyue):定义该函数用来取conf中的参数 def getconfig(section = "",option = "", path = confpath):
#TODO(yiquriyue):python自带处理配置文件的类 cf = ConfigParser.ConfigParser() cf.read(path) return cf.get(section,option)
#TODO(yiquriyue):定义该函数在函数中更改配置文件
def updateconfig(section = "",option = "", newvalue = "",path = confpath): cf = ConfigParser.ConfigParser() try: cf.read(path) cf.set(section,option,newvalue) cf.write(open(path,"w")) return True except: return False if __name__ == '__main__': pass
用一个测试函数测试该函数
from confOperation import getconfig,updateconfig if getconfig(analyse,ifopen): print "分析开启了!" print getconfig(email,username)
updateconfig(email,username,'hello@world.com')
print getconfig(email,username)
tip:配置文件读取的未字符串格式,布尔量不能直接判断,需要进行字符串比较。
2、编码问题
python编码问题一直都很令人困扰,最近在做邮件的解析更是突出,不同邮箱用不同的邮件编码,不同语言也是不同的编码,邮件和附件编码又存在不同的情况。不过还好理清逻辑,一步一步来还是能够解决的。