python 关于配置文件,日志,传参总结

原创 2013年12月02日 18:32:45

python 关于配置文件,日志,传参总结

前段时间用python做了些工作,说实在的,之前也就是了解一点python,没有用其做过东西,这次做完之后,感觉python脚本挺强大的,在日志,配置,字符处理与mysql的连接都做得比较好。现将其总结下

一、python的日志功能

只要在程序中添加import logging,就可以使用其日志功能,其日志级别包括:日志级别包括:NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL

在程序中可以指定日志终端的输出级别和写日志的级别,可以完美的把日志按照要求输入到终端和写入指定文件

Demo:

#!/usr/bin/python
#encoding=utf-8
import logging

#日志级别包括:NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL
logging.basicConfig(level=logging.INFO,
                format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
                datefmt='%a, %d %b %Y %H:%M:%S',
                filename='myapp.log',#定义日志的名称
                filemode='w')

#################################################################################################
#定义一个StreamHandler,将INFO级别或更高的日志信息打印到标准错误,并将其添加到当前的日志处理对象#
console = logging.StreamHandler()
console.setLevel(logging.ERROR)
formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
console.setFormatter(formatter)
logging.getLogger('').addHandler(console)
#################################################################################################

logging.debug('This is debug message')
logging.info('This is info message')
logging.warning('This is warning message')
logging.error('This is error message')
logging.critical('This is critical message')

for i in range(0,10):
logging.info(str(i))

运行:python log.py

终端输出:由于日志中设定了终端输出日志的级别为ERROR,所以终端只输出大于该级别的日志,大于INFO级别的日志写在了指定的myapp.log文件中



二、python读取配置文件功能

只要在程序中添加import ConfigParser,就可以使用python自带的读取配置文件功能

Demo:

假设配置文件名称为:config,其内容为:

[computer]

ip=localhost ;本地数据库

port = 80 ;端口

        程序:

#!/usr/bin/python
#encoding=utf-8
import ConfigParser


#读取配置文件
config = ConfigParser.ConfigParser()
config.readfp(open("config","rb"))

g_ip = config.get("computer","ip")
g_port = config.get("computer","port")

print "IP:",g_ip,"PORT:",g_port

运行python config.py:

输出结果:


三、python main函数传参

如C/C++一样,main函数传参使用的也是getopt

需要模块:sys
参数个数:len(sys.argv)
脚本名:    sys.argv[0]
参数1:     sys.argv[1]
参数2:     sys.argv[2]

Demo:

#!/usr/bin/python
#encoding=utf-8
import os,sys,getopt

def Usage():
    print "Usage:%s -h 帮助信息\t-b 查询的开始日期\t-e 查询的结束日期"%sys.argv[0]

#main 函数执行
if __name__=="__main__":

#对输入的参数进行判断
    try:
        opts,args = getopt.getopt(sys.argv[1:], "hb:e:")
        print "输入的参数个数为:%s\r\n"%len(sys.argv)

        for op, value in opts:
            if op == "-b":
                print "input arg:%s\r\n"%value
            if op == "-e":
                print "input arg:%s\r\n"%value
            elif op == "-h":
                Usage()
                sys.exit()
    except getopt.GetoptError:
        print "getopt error!"
        Usage()
        sys.exit()

运行:python getarg.py –h

运行结果:


运行:python getarg.py -b 2012 -e 2013



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

python日志输出—logging配置文件

一、logging直接写在代码中       >>>http://blog.csdn.net/naiveloafer/article/details/7630673 二、通过配置文件来配置输出...

Python logging模块使用配置文件记录日志

良好的日志是应用程序调试、质量跟踪的重要线索,因此在应用开发过程中应当养成良好的日志记录习惯。在Python中内建了logging模块,可以使用该模块生成高质量的应用程序日志。基本用法默认情况下,lo...

Python中logging.config配置文件解读

Python中logging.config配置文件解读 下面的函数用于配置logging模块,它们位于logging.config模块中。你可以使用这些函数来配置,也可以在logging或是...

μCOS-II實踐

這是一件很有意義的事情,實踐μCOS-II感覺還是很好的。手頭有塊周立功EasyARM2200(LPC2210)的開發板,今天研究了一下,把μCOS-II條通了,比較高興,拿出來說說。基本上都是按照書...

对深拷贝与浅拷贝的再次理解

对深拷贝与浅拷贝的再次理解     记得11年底找工作的时候,面试时曾经遇到有面试官问的对深拷贝与浅拷贝的理解,那时候自己回来查了资料,写了篇博客,感觉自己理解了,其实理解的不深刻,最近在调试bug...

springmvc freemarker 之间的传参问题练习 出问题出现在配置文件上

1.pom.xml配置 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XM...

python日志输出—logging配置文件

一、logging直接写在代码中       >>>http://blog.csdn.net/naiveloafer/article/details/7630673 二、通过配置文件来...

Oracle学习(十八)之控制文件、日志文件、数据文件及配置文件管理总结

一、控制文件 1.查询 select * from v$controlfile; 2.修改 1)修改参数 alter system control_files= '文件路径1', '文...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)