精华内容
下载资源
问答
  • Python读取配置文件

    万次阅读 2015-11-20 23:58:13
    一、argparse argparse,是Python...也可以用于读取配置文件。 1.conf配置文件: { "game0": { "ip":"127.0.0.1", "port":27182, "type":1 }, "game1": { "ip":"127.0.0.1", "port":27183, "type

    欢迎转载,转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/49954705


    一、argparse

    argparse,是Python标准库中推荐使用的编写命令行程序的工具。也可以用于读取配置文件。

    1.conf配置文件(test.conf):

    {
    	"game0":
    	{	
    		"ip":"127.0.0.1",
    		"port":27182,
    		"type":1
    	},
    	"game1":
    	{
    		"ip":"127.0.0.1",
    		"port":27183,
    		"type":0
    	},
    	"game2":
    	{
    		"ip":"127.0.0.1",
    		"port":27184,
    		"type":0
    	}
    }
    


    2.python代码(test.py):

    # -*- coding:utf-8 -*-
    
    import json
    import sys
    import argparse
    
    def parse_args(args):
    	parser = argparse.ArgumentParser(prog="GameServer")
    	parser.add_argument('configfile', nargs=1, type=str, help='')
    	parser.add_argument('--game', default="game", type=str, help='')
    	return parser.parse_args(args)
    
    def parse(filename):
    	configfile = open(filename)
    	jsonconfig = json.load(configfile)
    	configfile.close()
    	return jsonconfig
    
    def main(argv):
    	args = parse_args(argv[1:])
    	print "args:",args
    	config = parse(args.configfile[0])
    	info = config[args.game]
    	_ip = info['ip']
    	_port = info['port']
    	print "type:",type(_port)
    	_type = info['type']
    	print "print:%s,%d,%d"%(_ip,_port,_type)
    
    if __name__ == '__main__':
    	main(sys.argv)
    

    启动脚本:python test.py test.conf --game=game0



    二、ConfigParser

    ConfigParser是Python读取conf配置文件标准的库。

    1.conf配置文件(test2.conf):

    [game0]
    ip = 127.0.0.1
    port = 27182
    type = 1
    
    [game1]
    ip = 127.0.0.1
    port = 27183
    type = 0
    
    [game2]
    ip = 127.0.0.1
    port = 27184
    type = 0
    


    2.Python代码(test2.py):

    # -*- coding:utf-8 -*-
    
    import ConfigParser
    import sys
    
    def parse_args(filename):
    	cf = ConfigParser.ConfigParser()
    	cf.read(filename)
    	
    	#return all sections
    	secs = cf.sections()
    	print "sections:",secs
    	
    	#game0 section
    	game0 = cf.options("game0")
    	print "game0:",game0
    	
    	items = cf.items("game0")
    	print "game0 items:",items
    	
    	#read
    	_ip = cf.get("game0","ip")
    	_port = cf.getint("game0", "port")
    	_type = cf.getint("game0", "type")
    	print "print:%s,%d,%d"%(_ip,_port,_type)
    
    def main(argv):
    	parse_args(argv[1])
    
    if __name__ == '__main__':
    	main(sys.argv)

    启动脚本:python test2.py test2.conf


    我个人更喜欢第一种方式,因为觉得第一种方式可以很方便操作一个标准json格式的多层的配置,而且更方便命令行过滤,第二种方式不方便操作多层数据且取数据的时候比第一种略微麻烦。



    展开全文
  • python读取配置文件

    万次阅读 2013-12-11 14:53:42
    python读取配置文件   配置文件样例: [root@slave92 python]# more config.ini [sec1] user = root [concurrent] processor = 20 [baseconf] user2 = user2 user1 = root1 host =

    author:skate
    time:2013/12/11


    python读取配置文件

     

    配置文件样例:
    [root@slave92 python]# more config.ini
    [sec1]
    user = root

    [concurrent]
    processor = 20

    [baseconf]
    user2 = user2
    user1 = root1
    host = 127.0.0.1
    db_name = skatebd
    user = rootroot
    password = root
    port = 3306

    ——————————————————————————————————————————

    具体脚本内容
    [root@slave92 python]# vi opcfg.py
    #!/usr/bin/python
    # -*- coding:utf-8 -*-
    #author: skate
    #time:2013/12/10
    #funcation: use to read config
    #version: 0.1
    #---------------------
    #time        modificator  desc
    #2013/12/11  skate        support class and param for cmd
    #
    #---------------------
    import sys,os,time,getopt
    import ConfigParser
     
    class Config:
        def __init__(self, path):
            self.path = path
            self.cf = ConfigParser.ConfigParser()
            self.cf.read(self.path)
        def get(self, field, key):
            result = ""
            try:
                result = self.cf.
       get(field, key)
            except:
                result = ""
            return result
        def set(self,section, field, key, value):
            try:
                if len(section) > 0:
                    self.cf.add_section(section)
                if len(field) >0 and len(value) > 0:
                    self.cf.set(field, key, value)
                self.cf.write(open(self.path,'w'))
            except:
                return Flase
            return True

        def remove_option(self, field,key):
             try:
                 if len(key) >0 and len(field) > 0:
                     self.cf.remove_option(field,key)
                 self.cf.write(open(self.path,'w'))
             except:
                 return Flase
             return True

        def remove_section(self,field):
             try:
                  if len(field) >0:
                       self.cf.remove_section(field)
                  self.cf.write(open(self.path,'w'))
             except:
                 return Flase
             return True


    def read_config(config_file_path, field, key):
        try:
            config = Config(config_file_path)
            result = config.get(field,key)
        except:
            sys.exit(1)
        return result

    def write_config(config_file_path,section, field, key, value):
        try:
            config = Config(config_file_path)
            return Flase
            #sys.exit(1)
        return True

    def remove_option_config(config_file_path, field,key):
        try:
            config = Config(config_file_path)
            config.remove_option(field,key)
        except:
            return Flase
        return True

    def remove_section_config(config_file_path,field):
        try:
            config = Config(config_file_path)
            config.remove_section(field)
        except:
            return Flase
        return True

    def usage():
      '''opcfg.py OPTIONS:.

         configfile c    The configuration file name
         field  F        The name of field
         addkey a        The adding the name key
         getkey g        The getting the name key
         value v         The value of key
         add_section A   The adding the name of section
         delkey  d       The deleteing the name of key
         del_scetion D   The deleteting the name of section
         help h          Get the help file

    eg:
    get key:       # opcfg.py  -c config.ini  -F section  -g user
    add key:       # opcfg.py  -c config.ini  -F section  -a user -v root
    add section    # opcfg.py  -c config.ini  -A sec1  -F sec1 -a sec1_user -v root
    del key        # opcfg.py  -c config.ini  -F section -d sec1
    del section    # opcfg.py  -c config.ini  -D sec1 '''

    if __name__ == "__main__":
      try:
          if len(sys.argv) < 2:
             sys.exit(1)

       opts,args = getopt.getopt(sys.argv[1:],"hc:F:a:g:v:A:d:D:",["help","configfile=","field=","addkey=","getkey=","value=","add_section=","delkey=","del_section="])

          config_file_path = ""
          field = ""
          addkey = ""
          getkey = ""
          keyvalue = ""
          add_section = ""
          delkey = ""
          del_section = ""

          for op, value in opts:
            if op in ( "-h","--help"):
               print(usage.__doc__)
            elif op in ("-c","--configfile"):
               config_file_path = value
            elif op in ("-s","--section"):
               init_section = value
            elif op in ("-F","--field"):
               field = value
            elif op in ("-a","--addkey"):
               addkey = value
            elif op in ("-g","--getkey"):
               getkey = value
            elif op in ("-v","--value"):
               keyvalue = value
            elif op in ("-A","--add_section"):
               add_section = value
            elif op in ("-d","--delkey"):
               delkey = value
            elif op in ("-D","--del_section"):
               del_section = value

          #print "config_file_path: %s" % config_file_path
          #print "field: %s"  % field
          #print "addkey: %s" % addkey
          #print "getkey: %s" % getkey
          #print "keyvalue: %s" % keyvalue
          #print "add_section: %s" % add_section
          #print "del_section: %s" % del_section

          if len(getkey) > 0:
            print read_config(config_file_path, field, getkey)
          elif len(addkey) > 0 or len(add_section) > 0:
            write_result = write_config(config_file_path,add_section,field, addkey, keyvalue)
            print "write_result :%s" % write_result

            if write_result == True:
               print "write config success!!"
            else:
               print "write config error!!"
          elif len(delkey) >0 and len(field) >0:
            remove_option_config(config_file_path, field,delkey)
          elif len(del_section) > 0 :
            remove_section_config(config_file_path,del_section)
          elif len(delkey) >0 and len(field) > 0 :
            remove_option_config(config_file_path, field,delkey)
          else:
            print "param error"
      except:
          print "configfile have problem"


    本程序知识点:
    1. python中使用命令行选项
    2. python操作配置文件

     

    详解
    1. python中使用命令行选项

    python如果想处理参数,需要用到sys模块,通过sys模块可以获得参数相关信息,如下:
    参数个数:len(sys.argv)
    脚本名:    sys.argv[0]
    参数1:     sys.argv[1]
    参数2:     sys.argv[2]

    getopt函数可以处理命令行选项,其语法如下:
    getopt.getopt(args, options[, long_options])

     

    本示例中解析
    opts,args = getopt.getopt(sys.argv[1:],"hc:F:a:g:v:A:d:D:",["help","configfile=","field=","addkey=","getkey=","value=","add_se
    ction=","delkey=","del_section="])

    A. sys.argv[1:]为要处理的参数列表,sys.argv[0]为脚本名,所以用sys.argv[1:]过滤掉脚本名。
    B. "hc:F:a:g:v:A:d:D:": 当一个选项只表示开关状态时,即后面不带附件参数时,在分析串中只写入选项字符。当选项后面是带一个附加参数时,在分析串中写入选项字符同时后面加一个":"号;所以”h“是一个开关选项,”c:”,“F:”,“a:”,“g:”,“v:”,“A:”,“d:”,“D:“则表示后面应该带一个参数。
    C. 调用getopt函数。函数返回两个列表:opts和args。opts为分析出的格式信息。args为不属于格式信息的剩余的命令行参数。opts是一个两元组的列表。每个元素为:(选项串,附加参数)。如果没有附加参数则为空串''。

    getopt函数的第三个参数[, long_options]为可选的长选项参数,上面例子中的都为短选项(如 -c, -F等)
    长选项格式举例:
    --version
    --file=error.txt
    让一个脚本同时支持短选项和长选项
      getopt.getopt(sys.argv[1:], "Vf:", ["version", "file="])

     

    2. python操作配置文件

    常用选项:
    config = ConfigParser.ConfigParser() //初始化config实例(建立一个空的数据集实例)
    config.read(filename)  //通过load文件filename来初始化config实例
    config.get(section, key) //获得指定section中的key的value
    config.set(section, key, value)  //在指定section中,添加一对key-value键值对
    config.remove_option(section, key) //删除指定section的key
    config.remove_section(section)     //删除指定section
    config.write(open(filename,'w'))   //保存配置

    详细参考内容:http://docs.python.org/2/library/configparser.html

     

     ------end-----

     

     

    展开全文
  • Python内置 非常强大的日志模块 ==> logging 今天给大家分享一下以配置文件形式进行配置log日志 ; Centos6.7 Python3.6 logging0.5.1.2 logging模块有三个比较重要的功能组件: 1、loggers 配置文件可定义一些输出...
  • # ============================================ # ignore all the *.tar.gz file including subdir *.tar.gz # ============================================ # ignore all the .history dir including subdir ...
  • Python/logging日志模块/配置文件形式

    千次阅读 2018-03-19 13:54:23
    在一些微服务或web服务中我们难免需要日志功能,用来记录... logging 今天给大家分享一下以配置文件形式进行配置log日志 ; Centos6.7 Python3.6 logging0.5.1.2 logging模块有三个比较重要的功能组件: loggers...

    在一些微服务web服务中我们难免需要日志功能,用来记录一些用户登录记录,操作记录,以及一些程序的崩溃定位,执行访问定位等等;

    Python内置 非常强大的日志模块 ==> logging 今天给大家分享一下以配置文件形式进行配置log日志 ;

    • Centos6.7
    • Python3.6
    • logging0.5.1.2

    logging模块有三个比较重要的功能组件:

    1. loggers 配置文件可定义一些输出日志的appname
    2. handler 过滤器,比如设置日志的分隔大小,输出位置,日志文件创建等
    3. formatters 指定日志输出的格式

    1: 创建一个文件,以.conf结尾 或以.ini结尾(PS: 其他的结尾没试过,你可以试试)

        vim log.conf    

    2: 定义日志输出的APP名,指定过滤器这里用loggers功能

    [loggers]               #固定写法
    keys=root,error,info    #创建三个app名,root是父类,必需存在的
    
    [logger_root]           #创建完的app名我们要定义一些规则,严格要求格式为"logger_appname"
    level=DEBUG             #设置日志级别
    qualname=root           #这里在"root"appname下可以不填,所有没获取get的情况下默认app名都是root
    handlers=debugs         #设置指定过滤器,多个以逗号分隔,这个名字待会儿 我们会以固定格式"handler_(value)"创建
    
    [logger_error]
    level=ERROR
    qualname=error          #除了root appname以外,定义的app名必须要设置这个属性,用于定义打印输出时候的app名
    handlers=errors
    
    [logger_info]
    level=INFO
    qualname=INFO
    handlers=infos

    3: 定义日志过滤器这里用handler功能

    [handlers]                  #固定格式
    keys=infos,errors,debugs    #定义过滤器名称,下面定义以handler_keysname格式定义,上面引用名称必须和keys一致
    
    [handler_infos]             
    class=FileHandler           #指定过滤器组件,详情请看官网,这个是以文件方式创建
    level=INFO                  #设置级别
    formatter=form01            #定义日志打印格式,下面会创建formatters,格式也是严格要求formatter_keysname 创建
    args=('info.log','a')       #创建文件名字,以什么方式打开
    
    [handler_errors] 
    class=FileHandler
    level=DEBUG
    formatter=form02
    args=('info1.log','a')
    
    [handler_debugs] 
    class=FileHandler
    level=DEBUG
    formatter=form02
    args=('info1.log','a')

    3: 定义日志输出格式,这里我们介绍最后一个组件formatters

    [formatters]            #固定格式
    keys=form01,form02      #定义名称,下面会引用格式同上
    
    [formatter_form01]
    format=%(asctime)s %(filename)s %(levelname)s  %(message)s  #年-月-日 时-分-秒,毫秒,文件名,级别名,消息信息
    datefmt=%Y-%m-%d %H:%M:%S   #日期输出格式
    
    [formatter_form02]
    format=%(asctime)s %(filename)s %(levelname)s  %(message)s
    datefmt=%Y-%m-%d %H:%M:%S

    4: 具体程序引用

    #!/usr/bin/env python
    import logging 
    import logging.config 
    logging.config.fileConfig('log.conf')
    
    logs = logging.getLogger('error')
    logs.error('errorsssss')

    欢迎下方留言,QQ:1301927919

    展开全文
  • pythonlogging日志文件配置

    千次阅读 2018-08-19 15:32:06
    首先,官网提供的文档:...这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP GET/POST,SMTP,Socket等,甚至可以自己实现具体的日志记录方式。 l...

    首先,官网提供的文档:https://docs.python.org/3/library/logging.html#handler-objects

    Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用。这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP GET/POST,SMTP,Socket等,甚至可以自己实现具体的日志记录方式。
    logging模块与log4j的机制是一样的,只是具体的实现细节不同。模块提供logger,handler,filter,formatter。

    • logger:提供日志接口,供应用代码使用。logger最长用的操作有两类:配置和发送日志消息。可以通过 logging.getLogger(name)获取logger对象,如果不指定name则返回root对象,多次使用相同的name调用 getLogger方法返回同一个logger对象。
    • handler:将日志记录(log record)发送到合适的目的地(destination),比如文件,socket等。一个logger对象可以通过addHandler方法添加0 到多个handler,每个handler又可以定义不同日志级别,以实现日志分级过滤显示。
    •  filter:提供一种优雅的方式决定一个日志记录是否发送到handler。
    •  formatter:指定日志记录输出的具体格式。formatter的构造方法需要两个参数:消息的格式字符串和日期字符串,这两个参数都是可选的。

    与log4j类似,logger,handler和日志消息的调用可以有具体的日志级别(Level),只有在日志消息的级别大于logger和handler的级别。

    logging用法解析

    1. 初始化 logger = logging.getLogger("endlesscode"),getLogger()方法后面最好加上所要日志记录的模块名字,后面的日志格式中的%(name)s 对应的是这里的模块名字
    2. 设置级别 logger.setLevel(logging.DEBUG),Logging中有NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL这几种级别,日志会记录设置级别以上的日志
    3. Handler,常用的是StreamHandler和FileHandler,windows下你可以简单理解为一个是console和文件日志,一个打印在CMD窗口上,一个记录在一个文件上
    4. formatter,定义了最终log信息的顺序,结构和内容,我喜欢用这样的格式 '[%(asctime)s] [%(levelname)s] %(message)s', '%Y-%m-%d %H:%M:%S',
    %(name)s Logger的名字
    %(levelname)s 文本形式的日志级别
    %(message)s 用户输出的消息
    %(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
    %(levelno)s 数字形式的日志级别
    %(pathname)s 调用日志输出函数的模块的完整路径名,可能没有
    %(filename)s 调用日志输出函数的模块的文件名
    %(module)s  调用日志输出函数的模块名
    %(funcName)s 调用日志输出函数的函数名
    %(lineno)d 调用日志输出函数的语句所在的代码行
    %(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示
    %(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数
    %(thread)d 线程ID。可能没有
    %(threadName)s 线程名。可能没有
    %(process)d 进程ID。可能没有

    具体参考博客:http://www.jb51.net/article/88449.htm

    为了实现日志滚动和过期日志删除,就是对handle的修改,具体见官网:
    https://docs.python.org/3/library/logging.handlers.html#module-logging.handlers

    中文的介绍如下:

    ogging库提供了两个可以用于日志滚动的class(可以参考https://docs.python.org/2/library/logging.handlers.html), 一个是RotatingFileHandler,它主要是根据日志文件的大小进行滚动,另一个是TimeRotatingFileHandler,它主要 是根据时间进行滚动。在实际应用中,我们通常根据时间进行滚动,因此,本文中主要介绍TimeRotaingFileHandler的使用方法 (RotatingFileHandler一样)。代码示例如下:
     

    • filename:日志文件名的prefix;
    • when:是一个字符串,用于描述滚动周期的基本单位,字符串的值及意义如下:
      “S”: Seconds
      “M”: Minutes
      “H”: Hours
      “D”: Days
      “W”: Week day (0=Monday)
      “midnight”: Roll over at midnight
    • interval: 滚动周期,单位有when指定,比如:when=’D’,interval=1,表示每天产生一个日志文件;
    • backupCount: 表示日志文件的保留个数;

    除了上述参数之外,TimedRotatingFileHandler还有两个比较重要的成员变量,它们分别是suffix和extMatch。 suffix是指日志文件名的后缀,suffix中通常带有格式化的时间字符串,filename和suffix由“.”连接构成文件名(例 如:filename=“runtime”, suffix=“%Y-%m-%d.log”,生成的文件名为runtime.2015-07-06.log)。extMatch是一个编译好的正则表达 式,用于匹配日志文件名的后缀,它必须和suffix是匹配的,如果suffix和extMatch匹配不上的话,过期的日志是不会被删除的。比 如,suffix=“%Y-%m-%d.log”, extMatch的只应该是re.compile(r”^\d{4}-\d{2}-\d{2}.log$”)。默认情况下,在 TimedRotatingFileHandler对象初始化时,suffxi和extMatch会根据when的值进行初始化:
    ‘S’: suffix=”%Y-%m-%d_%H-%M-%S”, extMatch=r”\^d{4}-\d{2}-\d{2}_\d{2}-\d{2}-\d{2}”;
    ‘M’:suffix=”%Y-%m-%d_%H-%M”,extMatch=r”^\d{4}-\d{2}-\d{2}_\d{2}-\d{2}”;
    ‘H’:suffix=”%Y-%m-%d_%H”,extMatch=r”^\d{4}-\d{2}-\d{2}_\d{2}”;
    ‘D’:suffxi=”%Y-%m-%d”,extMatch=r”^\d{4}-\d{2}-\d{2}”;
    ‘MIDNIGHT’:”%Y-%m-%d”,extMatch=r”^\d{4}-\d{2}-\d{2}”;
    ‘W’:”%Y-%m-%d”,extMatch=r”^\d{4}-\d{2}-\d{2}”;
    如果对日志文件名没有特殊要求的话,可以不用设置suffix和extMatch,如果需要,一定要让它们匹配上。

    具体可以参考:http://blog.csdn.net/ashi198866/article/details/46725813

    展开全文
  • 前言 最近学习了python,感觉挺多地方能用到它的。...首先需要一个参数配置文件FilterParameter.py formatFiles需要过滤的扩展名 dir需要进行删除的目录路径 formatFiles = [ '.mp4', '.mkv',
  • Plex Auto Collections是一个Python 3脚本/,可通过配置文件来创建/更新Plex集合。 使用此工具的馆藏管理可以在不同程度的可定制性下实现自动化。 支持IMDB和TMDb列表以及内置的Plex过滤器,例如演员,流派,年份,...
  • Python过滤器设计分析工具 pyFDA是Python / Qt中基于GUI的工具,用于分析和设计离散时间过滤器。 安装migen模块后,可以模拟定点实现(对于某些过滤器类型),并将其导出为可综合的Verilog网表。 当前版本的更多屏幕...
  • 生成排列:给定一个input.txt文件和某些设置,将生成一个输出.simc文件,其中包含指定的所有可能排列,并过滤为满足特定要求的“有效配置文件”。 然后可以使用SimulationCraft运行此输出文件。 在多阶段流程中...
  • python:库文件整理

    千次阅读 2019-10-29 18:42:20
    python文件 库名称 简介 Chardet 字符编码探测器,可以自动检测文本、网页、xml的编码。 colorama 主要用来给文本添加各种颜色,并且非常简单易用。 Prettytable 主要用于在终端或浏览器端构建格式化...
  • 其实只是简单地把debug 目录下的配置文件复制到指定目录,把Release下的生成文件复制到同一指定,过滤掉不需要的文件夹(.svn),然后再往这个指定目录添加几个特定的文件。  这个是我的第一个python小程序。  下面...
  • python执行sql文件

    万次阅读 2017-09-19 16:25:39
    最近遇到一对需要执行的sql文件,sql文件内是insert 语句。如下:INSERT INTO hs_his.stock_industry VALUES ('采掘', '000006', '深振业A'); INSERT INTO hs_his.stock_industry VALUES ('采掘', '000409', '山东...
  • 这个“自动发版本”有点虚, 只是简单地把debug 目录下的配置文件复制到指定目录,把Release下的生成文件复制到同一指定,过滤掉不需要的文件夹(.svn),然后再往这个指定目录添加几个特定的文件。 这个是我的第一个...
  • python配置日志的几种方式

    千次阅读 2018-02-02 11:01:06
    转自 云游道士 http://www.cnblogs.com/yyds/p/6885182.html... python配置日志的几种方式 作为开发者,我们可以通过以下3种方式来配置logging: 1)使用Python代码显式的创建loggers, handlers和form
  • 作为开发者,我们可以通过以下3... 2)创建一个日志配置文件,然后使用fileConfig()函数来读取该文件的内容; 3)创建一个包含配置信息的dict,然后把它传递个dictConfig()函数; 需要说明的是,logging.basicConfi...
  • 过滤器一般用于对传递到模板中的变量进行一定的处理:包括add、cut、date、default、first、last、floatformat、join、safe、...Django中加载静态资源文件一般需要进行配置,同时分为app内和项目中,可根据据需要选择。
  • Python 遍历子文件和所有子文件夹

    千次阅读 2017-10-10 12:02:12
    这个“自动发版本”有点虚, 只是简单地把debug 目录下的配置文件复制到指定目录,把Release下的生成文件复制到同一指定,过滤掉不需要的文件夹(.svn),然后再往这个指定目录添加几个特定的文件。 这个是我的第一个...
  • 文章目录1、基本知识总结1、日志等级2、logging模块定义的模块级别的常用函数3、logging.basicConfig()函数包含参数说明4、logging定义好的formmat 格式5、日志输出格式6、loggin 的四大组件7、常用的配置方法7.1 ...
  • Source insight 阅读python 代码 配置

    千次阅读 2008-08-28 14:16:00
    A, download clf file from http://www.sourceinsight.com/public/languages/Python.CLFB, import and configuration 1. 选择 Options > Preferences。点击Languages 标签。 2. 点击 Import 按钮。选择和加载定
  • 使用Python进行OpenCV颜色检测和过滤

    万次阅读 多人点赞 2019-04-15 23:06:56
    OpenCV颜色检测和过滤是启动OpenCV Python开发的绝佳...OpenCV(开源计算机视觉库)用于过滤从视频流,视频文件或图像文件中获取的图像。使用支持的编程语言时,您可以创建程序以使用相机作为传感器来检测和跟踪图...
  • 它使用一个集中的、相互化的配置文件存储库来尽可能精确地解析网站,如果没有找到配置,则回退到众所周知的readability自动提取器。 一个显着的区别是,如果在本地没有找到配置,这个 python 实现将动态地从互联网...
  • sublime text 3 + python配置,完整搭建及常用插件安装

    万次阅读 多人点赞 2016-01-18 11:16:35
    四年的时间,一直使用EmEditor编辑器进行Python开发,之前是做面向过程,只需要将一个单独的py文件维护好即可,用着也挺顺手,但是最近在做面向对象的开发,不同的py文件中相互关联较多,感觉单纯使用EmEditor编辑...
  • PythonPython核心编程

    万次阅读 多人点赞 2019-06-13 22:41:24
    Python核心编程 数据类型 数值类型(整数,浮点,布尔) 序列类型(字符串,列表,元组) 散列类型(字典,集合) 字节类型 a=bytes(‘123’)/a=b’123’ 字节数组bytearrary(‘123’) 数据类型的方法 字符串方法: ...
  • Python黑客编程3网络数据监听和过滤

    千次阅读 2017-10-19 11:20:09
    Python黑客编程3网络数据监听和过滤    课程的实验环境如下: • 操作系统:kali Linux 2.0 • 编程工具:Wing IDE • Python版本:2.7.9 • 涉及到的主要python模块:pypcap,dpkt,scapy,scapy-http...
  • python文件简介整理

    千次阅读 2018-12-07 15:19:39
    python文件 库名称 简介 Chardet 字符编码探测器,可以自动检测文本、网页、xml的编码。 colorama 主要用来给文本添加各种颜色,并且非常简单易用。 Prettytable 主要用于在终端或浏览器端构建格式化的输出。 ...
  • Python 音频文件切割

    万次阅读 2016-10-07 14:01:29
    配置完成. 代码实现 from pydub import AudioSegment import os , re # 循环目录下所有文件 for each in os . listdir ( '.' ) : filename = re . findall ( r "(.*?)\.mp3" , each ) ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 59,216
精华内容 23,686
关键字:

python过滤配置文件

python 订阅