常用模块
http://www.cnblogs.com/alex3714/articles/5161349.html
##########模块############
import 调用模块
单独调用模块的某个函数
from time import sleep ##调用time模块的sleep函数(可以用,取多个)sleep(1)print('afsasdas')###改变模块内的函数名字
from time import sleep as stop ##将sleep改成stopstop(1)print('afsasdas')##获取文件的路径
print(__file__) ##结果C:/Users/Administrator/PycharmProjects/untitled3/test/import mode call###获取文件目录的绝对路径(从相对路径一层一层找的)print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))##结果C:\Users\Administrator\PycharmProjects\untitled3###__name__变量在当前文件中为__main__在其他文件中调用就为所调用文件的文件名
print(__name__) ##结果__main__
time 模块(时间)
1.sleep #睡眠时间 time.sleep(1)2.strftime ##类似shell中的date命令time_format= '%Y-%m-%d %X'print(time.strftime(time_format))结果2017-12-21 17:53:35**********可以这么用 print(time.strftime('%Y--%m--%d %X',time.localtime())) 结果 2017--12--25 21:23:053.time #计算时间(计算机诞生到现在的时间1970年)以秒为单位
print(time.time()) #结果 1514207184.70772864.localtime ##当前时间(结构化显示) print(time.localtime())显示结果 time.struct_time(tm_year=2017, tm_mon=12, tm_mday=25, tm_hour=21, tm_min=13, tm_sec=7, tm_wday=0, tm_yday=359, tm_isdst=0)5.strptime ##转换为格式化时间显示 print(time.strptime('2017--12--25 21:23:05','%Y--%m--%d %X'))#结果 time.struct_time(tm_year=2017, tm_mon=12, tm_mday=25, tm_hour=21, tm_min=23, tm_sec=5, tm_wday=0, tm_yday=359, tm_isdst=-1)6.ctime #显示当前时间 print(time.ctime()) #结果 Mon Dec 25 21:35:00 20177.mktime #以秒的格式显示当前时间 print(time.mktime(time.localtime()))结果# 1514209097.0 print(time.time()) #1514209097.3601263print(time.mktime(time.localtime()))#1514209097.0#####datetime模块(时间)
1.datetime.now ##显示时间 print(datetime.datetime.now())#结果 2017-12-25 21:41:53.292476random(随机数模块)
1.randint ##生成自定义的随机数(包括尾数) print(random.randint(1,10)) #生成1-10的随机数2.random #生成大于0小于1的16位的随机数 print(random.random()) #结果 0.91820254888239873.choice #在一个序列中随机打印一个内容 print(random.choice(['q','w','e']))或者print(random.choice('hello'))4.sample #在一个序列中随机选择n个内容print(random.sample([1,3,6,7],2))#结果 [3, 1]5.randrange #自定义范围选择随机数(顾头不顾尾)print(random.randrange(1,3))##1到2的随机数(不包括3)os(操作系统模块)
1.getcwd ##获取当前文件的工作目录(目录)print(os.getcwd()) ##结果C:\Users\Administrator\PycharmProjects\untitled3\test2.chdir ##改变当前文件或脚本的工作目录 print(os.getcwd())os.chdir(r'C:\Users') ###改变工作目录print(os.getcwd())结果C:\Users\Administrator\PycharmProjects\untitled3\testC:\Users3.curdir ##返回当前目录 类似cd .print(os.getcwd())print(os.curdir)结果C:\Users. #点4.pardir ##返回上一级目录 类似cd .. print(os.pardir) ##结果..(2个点)5.makedirs ##创建多个目录(默认当前目录)os.makedirs('a\\bb') 6.removedirs ##删除多个空目录(非空不删除) os.removedirs('a\\bb') 7.mkdir ##创建一个目录 os.mkdir('aaaa')8.rmdir ##删除一个目录 os.rmdir('aaaa')9.listdir ##把某个目录下的所有文件及目录以一个list的格式显示os.listdir(r'\Users\Administrator\PycharmProjects\untitled3')10.remove ##删除一个文件(只能是文件)os.remove('v')11.rename ##改文件或目录的名字 os.rename('v1','vvv1')12.stat ##显示文件或目录的详细信息(类似shell的stat)print(os.stat(r'aa\b\qqq.py'))(可以看文件大小)#结果os.stat_result(st_mode=33206, st_ino=2533274790532240, st_dev=701016, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1514293889, st_mtime=1514293889, st_ctime=1514293889)13.sep ##获取当前操作系统路径分割符 linux=/ win=\ print(os.sep)14.linesep ##换行分隔符 win=\r\n linux=\n mac=\r15.pathsep ##输出分割文件路径路径的分隔符 print(os.pathsep) 16.name #输出字符串指定当前使用平台 win=nt linux=posix print(os.name)17.system ##运行shell命令 print(os.system('ping baidu.com'))18.environ ##获取系统环境变量(字典形式) print(os.environ)19.path.abspath ##获取文件或目录的绝对路径 print(os.path.abspath('aa'))20.path.split##以元祖形式将文件分成(路径与文件名)根据最后一个斜杠分print(os.path.split(r'C:\Users\Administrator\PycharmProjects\untitled3\test\aa'))结果('C:\\Users\\Administrator\\PycharmProjects\\untitled3\\test', 'aa')21.path.dirname #获得目录或文件的母目录(上一个目录)的绝对路径print(os.path.dirname(r'C:\Users\Administrator\PycharmProjects\untitled3\test'))结果C:\Users\Administrator\PycharmProjects\untitled322.path.basename #获取目录或文件(分隔符最后一个文件或目录)print(os.path.basename(r'C:\Users\Administrator\PycharmProjects\untitled3\test'))结果test23.path.exists ##判断文件存不存在 (存在True不存在False)print(os.path.exists(r'C:\Users\Administrator\PycharmProjects\untitled3\test'))24.path.isabs ##判断是否为绝对路径(是返回True不是返回False)print(os.path.isabs('test'))25.path.isfile ##判断是否为文件print(os.path.isfile('b'))26.path.isdir #判断是否为目录 print(os.path.isdir('../test'))27.path.join ##路径拼接 print(os.path.join(r'C:\Users\Administrator','b'))结果C:\Users\Administrator\b28.path.getatime ##获取文件的最后存取时间 print(os.path.getatime(r'C:\Users\Administrator'))结果1513490467.961430329.path.getmtime #获取文件的最后修改时间print(os.path.getmtime(r'C:\Users\Administrator'))结果1513490467.9614303
sys(python解释器模块)
1.argv ##以列表的形式进行传参(第一个是文件绝对路径与文件名)2.exit ##退出程序exit(0)为正常3.path ##搜寻模块路径(以列表形式显示) print(sys.path)4.platform ##返回操作系统名称 print(sys.platform)hashlib(加密模块)
1.md5 ##加密 a=hashlib.md5("hello".encode('utf8')) ##加密hello (需要对字符编码)print(a.hexdigest()) ##hexdigest(以16进制进行返回)#结果5d41402abc4b2a76b9719d911017c5922.sha(1-512) ##1到512都是加密算法 常用sha3_256 解密显示也用hexdigestlogging(日志模块)
http://www.cnblogs.com/yuanchenqi/articles/5732581.html
默认情况下Python的logging模块将日志打印到了标准输出中,且只显示了大于等于WARNING级别的日志,这说明默认的日志级别设置为WARNING(日志级别等级CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET),默认的日志格式为日志级别:Logger名称:用户输出消息。
一、简单使用
import logging logging.debug('debug message') logging.info('info message') logging.warning('warning message') ##打印logging.error('error message') ##打印logging.critical('critical message') ##打印二 灵活配置日志级别,日志格式,输出位置
import logging logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', datefmt='%a, %d %b %Y %H:%M:%S', filename='/tmp/test.log', filemode='w') logging.debug('debug message') logging.info('info message') logging.warning('warning message') logging.error('error message') logging.critical('critical message') filename:用指定的文件名创建FiledHandler(后边会具体讲解handler的概念),这样日志会被存储在指定的文件中。filemode:文件打开方式,在指定了filename时使用这个参数,默认值为“a”还可指定为“w”。format:指定handler使用的日志显示格式。 datefmt:指定日期时间格式。 level:设置rootlogger(后边会讲解具体概念)的日志级别 stream:用指定的stream创建StreamHandler。可以指定输出到sys.stderr,sys.stdout或者文件(f=open('test.log','w')),默认为sys.stderr。若同时列出了filename和stream两个参数,则stream参数会被忽略。
##########
format参数中可能用到的格式化串:%(name)s Logger的名字%(levelno)s 数字形式的日志级别%(levelname)s 文本形式的日志级别%(pathname)s 调用日志输出函数的模块的完整路径名,可能没有%(filename)s 调用日志输出函数的模块的文件名%(module)s 调用日志输出函数的模块名%(funcName)s 调用日志输出函数的函数名%(lineno)d 调用日志输出函数的语句所在的代码行%(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示%(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数%(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒%(thread)d 线程ID。可能没有%(threadName)s 线程名。可能没有%(process)d 进程ID。可能没有%(message)s用户输出的消息configparser(配置文件模块)
http://www.cnblogs.com/alex3714/articles/5161349.html
1.ConfigParser
import configparser
config=configparser.ConfigParser()config["DEBUG"]={ 'name':'zhangbin', 'age':'23', 'max':'male'}with open('example.ini', 'w') as configfile: config.write(configfile)##结果
[DEBUG]name = zhangbinage = 23max = male
#####对配置文件的操作 http://www.cnblogs.com/alex3714/articles/5161349.html
一、读
1.sections ##以list查看所有块 print(config.sections())
2.defaults ##以list查看(默认【第一个块】)块内的配置 print(config.defaults()) print('bitbucket.org' in config) ##判断print(config['bitbucket.org']['user']) ##查看user的值 二、增、删、改##删config.remove_section('topsecret.server.com') ##删除‘topsecret.server.com’块config.write(open('a.ini','w')) ##在创建文件(原文件中的内容无法改变)config.remove_option('bitbucket.org','user') ##删除'bitbucket.org'块下的'user'键值
config.write(open('a.ini','w')) ##重新写入文件##改
config.set('bitbucket.org','user','zhangbin') ##把'bitbucket.org'块中的‘user’改为‘zhangbin’config.write(open('a.ini','w')) ##重新写入文件re(正则模块)
1.findall ##查找所有 print(re.findall('w..l','hello world')). (点) ##任意一个字符^ (尖角号)以什么开头$ 以什么结尾* 重复 一般用(.*)进行匹配+ 前面一个字符最少出现一次 ? 前面么一个字符最多出现一次可以没有{} 定义前面一个字符出现多少次 print(re.findall('a{1,6}b','asdaaaab')) ##匹配1到6个a(最少1个最多6个a)到b [默认取最多的]\ (反斜杠) 去除元字符的特殊意义,加普通字符实现特殊意义() 表示一个整体| 或
[a-z] 小a到z
[^a-z] 排除a-z 2.search ##同findall但只取第一个并且拿到的是位置需要group才能查看内容 print(re.search('aa','aaqffadaa').group())##进阶运用方法
ret=re.search('(?P<id>\d{3})/(?P<name>\d{3})','assad123/456')print(ret.group()) 结果 123/456print(ret.group('id')) 结果 1233.match #只在字符串开头匹配(返回一个值)用gourp方法查看值print(re.match('d','dd').group())
4.split ##以什么为分割(分成list)print(re.split('d|f','dafqgweef'))5.sub ##替换 print(re.sub('a.*g','AAAAAA','dafagegrgvdssad')) #结果dAAAAAAvdssad6.compile ##重复调用定义的正则匹配ojb=re.compile('\.com')print(ojb.findall('baidu.com dasasd'))
json(序列化模块)(可以和其他语句沟通)
1.dumps ##json的方法存放数据import jsondic={"name":'zhangbin',"age":"23"}f=open('json_write','w')data=json.dumps(dic)f.write(data)###文件内容
{"name": "zhangbin", "age": "23"}2.loads ##解开json的存储方法
import jsonf=open('json_write','r')fw=f.read()d=json.loads(fw)print(d['name'])##结果zhangbin