python 常用模块

常用模块

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改成stop
stop(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:UsersAdministratorPycharmProjectsuntitled3

###__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:05

3.time #计算时间(计算机诞生到现在的时间1970年)以秒为单位
print(time.time()) #结果 1514207184.7077286
4.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 2017
7.mktime #以秒的格式显示当前时间 print(time.mktime(time.localtime()))
结果# 1514209097.0


print(time.time()) #1514209097.3601263
print(time.mktime(time.localtime()))#1514209097.0

#####datetime模块(时间)
1.datetime.now ##显示时间 print(datetime.datetime.now())
#结果 2017-12-25 21:41:53.292476


random(随机数模块)


1.randint ##生成自定义的随机数(包括尾数) print(random.randint(1,10)) #生成1-10的随机数
2.random #生成大于0小于1的16位的随机数 print(random.random()) #结果 0.9182025488823987
3.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:UsersAdministratorPycharmProjectsuntitled3 est
2.chdir ##改变当前文件或脚本的工作目录
print(os.getcwd())
os.chdir(r'C:Users') ###改变工作目录
print(os.getcwd())
结果
C:UsersAdministratorPycharmProjectsuntitled3 est
C:Users
3.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'UsersAdministratorPycharmProjectsuntitled3')
10.remove ##删除一个文件(只能是文件)os.remove('v')
11.rename ##改文件或目录的名字 os.rename('v1','vvv1')
12.stat ##显示文件或目录的详细信息(类似shell的stat)print(os.stat(r'aaqqq.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= linux= mac=
15.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:UsersAdministratorPycharmProjectsuntitled3 estaa'))
结果
('C:\Users\Administrator\PycharmProjects\untitled3\test', 'aa')
21.path.dirname #获得目录或文件的母目录(上一个目录)的绝对路径
print(os.path.dirname(r'C:UsersAdministratorPycharmProjectsuntitled3 est'))
结果
C:UsersAdministratorPycharmProjectsuntitled3
22.path.basename #获取目录或文件(分隔符最后一个文件或目录)
print(os.path.basename(r'C:UsersAdministratorPycharmProjectsuntitled3 est'))
结果
test
23.path.exists ##判断文件存不存在 (存在True不存在False)print(os.path.exists(r'C:UsersAdministratorPycharmProjectsuntitled3 est'))
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:UsersAdministrator','b'))
结果
C:UsersAdministrator
28.path.getatime ##获取文件的最后存取时间 print(os.path.getatime(r'C:UsersAdministrator'))
结果
1513490467.9614303
29.path.getmtime #获取文件的最后修改时间print(os.path.getmtime(r'C:UsersAdministrator'))
结果
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进制进行返回)#结果5d41402abc4b2a76b9719d911017c592
2.sha(1-512) ##1到512都是加密算法 常用sha3_256 解密显示也用hexdigest


logging(日志模块)

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 = zhangbin
age = 23
max = 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/456
print(ret.group('id')) 结果 123

3.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 json
dic={"name":'zhangbin',"age":"23"}
f=open('json_write','w')
data=json.dumps(dic)
f.write(data)

###文件内容
{"name": "zhangbin", "age": "23"}

2.loads ##解开json的存储方法
import json
f=open('json_write','r')
fw=f.read()
d=json.loads(fw)
print(d['name'])
##结果
zhangbin


pickle (python中的序列化模块)用法和json一样但在python中支持跟多的数据类型


1.dumps
2.loads

原文地址:https://www.cnblogs.com/zhangb8042/p/8434393.html