time模块是操作时间值的一个模块,模块里有两种时间的标准表达,第一种为时间戳,自unix诞生时(1970,1,1)开始记录秒数,第二种使用基于当地时间的9个数字的元组来表示(结构化时间),这9个数字分别表示:
year (including century, e.g. 1998) month (1-12) day (1-31) hours (0-23) minutes (0-59) seconds (0-59) weekday (0-6, Monday is 0) Julian day (day in the year, 1-366) DST (Daylight Savings Time) flag (-1, 0 or 1) If the DST flag is 0, the time is given in the regular time zone; if it is 1, the time is given in the DST time zone; if it is -1, mktime() should guess based on the date and time.
而我们通常用字符串时间来表示,关于字符串时间下面会讲到
1.2.1 time():返回时间戳
""" time() -> floating point number Return the current time in seconds since the Epoch. time.time() """1.2.2 gmtime():显示标准时间UTC(本初子午线)
localtime():显示本地时间(东8区) 两种方法返回都是结构化时间
print(time.gmtime()) # time.struct_time(tm_year=2020, tm_mon=6, tm_mday=26, tm_hour=8, tm_min=7, tm_sec=57, tm_wday=4, tm_yday=178, # tm_isdst=0) print(time.localtime()) # time.struct_time(tm_year=2020, tm_mon=6, tm_mday=26, tm_hour=16, tm_min=9, tm_sec=30, tm_wday=4, tm_yday=178, # tm_isdst=0)1.2.3 strftime(): 将结构化时间转换为字符串格式时间
''' strftime(format[, tuple]) -> string Convert a time tuple to a string according to a format specification. When the time tuple is not present, current time as returned by localtime() is used. 默认用本地时间 %Y Year with century as a decimal number. %m Month as a decimal number [01,12]. %d Day of the month as a decimal number [01,31]. %H Hour (24-hour clock) as a decimal number [00,23]. %M Minute as a decimal number [00,59]. %S Second as a decimal number [00,61]. %z Time zone offset from UTC. %a Locale's abbreviated weekday name. %A Locale's full weekday name. %b Locale's abbreviated month name. %B Locale's full month name. %c Locale's appropriate date and time representation. %I Hour (12-hour clock) as a decimal number [01,12]. %p Locale's equivalent of either AM or PM. ''' print(time.strftime('%Y-%m-%d %H:%M:%S')) # 2020-07-04 08:43:201.2.4 ctime(): 把时间戳转换为本地时间的字符串
''' ctime(seconds) -> string Convert a time in seconds since the Epoch to a string in local time. ''' print(time.ctime(3600)) # Thu Jan 1 09:00:00 19701.2.5 mktime():把本地时间的结构化时间转换为时间戳
""" mktime(tuple) -> floating point number Convert a time tuple in local time to seconds since the Epoch. """ print(time.mktime(time.localtime())) # 1593161431.01.2.6其他时间模块datetime
import datetime print(datetime.datetime.now()) # 2020-06-26 16:58:24.869268python标注库提供记录日志的模块 日志分为5个级别,等级排布为critical>error>warning>info>debug,默认日志级别为warning,即在其下的级别不予执行
输出: Mon 05 May 2014 16:29:53 test_logging.py[line:12] ERROR error message Mon 05 May 2014 16:29:53 test_logging.py[line:13] CRITICAL critical message
配置参数: level:设定日志等级 format:指定日志显示格式 filename:在日志以文件形式显示的时候,该文件的名字 filemode:打开文件的模式 datefmt:指定显示时间的格式 stream:使日志以屏幕形式显示(标准输出)
format参数中可能用到的格式化串: %(levelname)s 文本形式的日志级别 %(lineno)d 调用日志输出函数的语句所在的代码行 %(message)s用户输出的消息 %(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒 %(filename)s 调用日志输出函数的模块的文件名
可以通过Logger.setLevel(lel)指定最低的日志级别,可用的日志级别有logging.DEBUG、logging.INFO、logging.WARNING、logging.ERROR、logging.CRITICAL logger.debug()、logger.info()、logger.warning()、logger.error()、logger.critical()输出不同级别的日志,只有日志等级大于或等于设置的日志级别的日志才会被输出
该模块的作用 就是使用模块中的RawConfigParser()、ConfigParser()、 SafeConfigParser()这三个方法(三者择其一),创建一个对象使用对象的方法对指定的配置文件做增删改查 操作
常用配置文件类似于字典结构,我们可以通过py字典来创建
config=configparser.ConfigParser() config['DEFAULT']={'Dllpath':'tenio', 'lognum':'25', 'version':'20.0.2'} config['section1']={'group1':'administrator', 'group2':'hack'} config['section2']={'user':'hg', 'access':'yes'} with open('demo.ini','w') as f: config.write(f)3.2 增删改查
config.read('demo.ini') # 读取配置文件 print(config.sections()) # ['section1', 'section2'] print(config['section1']['group2']) # hack for i in config: print(i) # DEFAULT,section1,section2 for i in config['DEFAULT']: print(i) config.remove_section('section1') # 删除某块 config.remove_option('section1','group1') #删除某块中某组 config.set('section2','user','www') # 修改某块某组 config.write(open('demo.ini','w')) # 修改之后重新写入注:DEFUALT 为配置文件默认块,在调用sections()方法时不会显示