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编码问题一直都很令人困扰,最近在做邮件的解析更是突出,不同邮箱用不同的邮件编码,不同语言也是不同的编码,邮件和附件编码又存在不同的情况。不过还好理清逻辑,一步一步来还是能够解决的。

posted @ 2018-04-30 20:14  yiquriyue  阅读(101)  评论(0编辑  收藏  举报