一:模块的介绍:
用一坨代码实现了某个功能;模块分为:自定义模块、内置模块、开源模块。
1、time模块
import time
print(time.time()) #返回当前系统的时间戳
print(time.ctime()) #返回当前系统的时间
print(time.ctime(time.time()-86640)) #将时间戳转化为字符串格式
print(time.gmtime(time.time()-86640)) #将时间戳转化为struct_time格式
print(time.localtime(time.time()-86640)) #将时间戳转化为struct_time格式,并且返回本地时间
print(time.mktime(time.localtime())) #将struct_time格式转化为时间戳格式
print(time.strftime('%Y-%m-%d %H:%M:%S' ,time.gmtime())) #将struct_time格式转化为指定格式
print(time.strptime('2016-01-22','%Y-%m-%d')) #将字符串格式转化为struct_time格式
2、datetime模块
import datetime
print(datetime.date.today()) #输出格式为2016-01-22
print(datetime.date.fromtimestamp(time.time()-86640)) #将时间戳转化为日期格式
print(datetime.datetime.now()) #输出格式为:2016-01-22 17:22:23.652738
print(datetime.datetime.now().timetuple()) #返回struct_time格式
print(datetime.datetime.now().replace(2011,1,1)) #输出替换时间,并且当前时间被替换
print(datetime.datetime.now() + datetime.timedelta(days = 10)) #比现在多10天
print(datetime.datetime.now() + datetime.timedelta(days =- 10)) #比现在少10天
print(datetime.datetime.now() + datetime.timedelta(hours =- 10)) #比现在少10小时
print(datetime.datetime.now() + datetime.timedelta(seconds =-120)) #比现在少120秒
3、random模块
import random
print(random.random()) #随机生成一个数0.0~1.0之间
print(random.randint(1,10)) #在1-10之间生成一个随机数
print(random.randomrange(1,10)) #在1-10之间生成一个随机数,不包括上限数字10
例如:随机生成验证码:
1 import random 2 checkcode = '' 3 for i in range(0,4): 4 rand_num = random.randrange(0,4) 5 if rand_num == i: 6 temp = random.randint(0,9) 7 else: 8 temp = chr(random.randint(65,90)) 9 checkcode = str(temp) 10 print(checkcode)
4、os模块
提供对操作系统进行调用的接口。
import os
os.getcwd() #获取当前python脚本的工作的目录路径
os.chdir('目录') #改变当前的脚本目录,相当于cd本目录中的子目录
os.curdir #返回当前目录的:('.');不知怎么用
os.pardir() #返回当前目录的父目录:('..');不知怎么用
os.makedirs('a/b') #生成多级递归目录
os.removedirs('') #若目录为空则删除,并且返回到该目录的上级目录
os.mkdir('') #创建单级目录,相当于mkdir dir
os.rmdir('') #删除单级目录,如果目录不为空则无法删除,会报错
os.listdir('') #列出指定目录下的所有文件和子目录,包括隐藏文件,并且以列表的方式打印出来
os.remove() #删除本级目录中的一个文件
os.rename('oldname','newname') # 重命名文件或者目录,如果命名目录或文件存在则报错
os.stat('目录') #获取目录或文件的信息
os.sep #输出操作系统的特定的路径分隔符Windows为‘\\’,linux为'/'
os.linesep #输出当前平台使用的行终止符,Windows为'\r\n',linux为'/n'
os.pathsep #输出当前平台用于分割文件路径的字符串,Windows为';',linux为':'
os.name #输出字符串表示当前使用的平台;Windows使用:'nt',linux使用:'posix'
os.system('shell command') #运行shell命令,直接显示;使用的是子shell;返回值状态为‘0’
os.environ #获取系统的环境变量;基本无用处
os.popen.('shell command')read() #执行命令的结果以字符串的形式读出来
os.path.isfile('') #判断是否为一个文件
os.path.isdir('') #判断是否为一个目录
注意:19以后还没规整。。。
5、sys模块
import sys
sys.argv[0] #表示代码本身的路径
sys.exit() #退出程序
sys.version #获取python解释程序的版本信息
sys.maxint #最大的int值
sys.path #返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform #返回操作系统平台的名称
sys.stdout.write('#') #输出字符‘#’,例如:做进度条
1 import sys 2 import time 3 for i in range(10) 4 sys.stdout.write('#') 5 sys.stdout.flush() 6 time.sleep(0.3)
sys.stdin.readline() #输出带有回车/n这个字符;
sys.stdin.readline()[:-1] #输出不带有/n这个字符
6、shutil模块
高级的文件、文件夹、压缩包处理模块
import shutil
shutil.copyfileobj(fscr,fdst,lenth) #将一个已打开的文件内容copy到另外一个已打开的文件中,可以标注copy的长度
shutil.copyfiel(src,dst) #copy文件
shutil.copymode(src,dst) #仅copy权限,内容、组、用户都不变
shutil.copystat(src,dst) #copy状态信息,包括:mode bits, atime, mtime, flags
shutil.copy(src,dst) #copy文件和权限
shutil.copy2(src,dst) #copy文件和状态信息
shutil.copytree(src,dst,symlinks=False,ignore=None) #递归的去copy文件,软连接不copy,也可以定义一些文件不去copy
shutil.rmtree() #递归的去删除目录
shutil.move(src,dst) #递归的去移动目录
shutil.make_archive(base_name,format,root_dir)
#base_name:压缩包名字,也可以是压缩包路径,只是文件名时保存当前路径,否则保存指定路径
#format:压缩包种类;‘zip、tar、bztar、gztar’
#root_dir:要压缩文件的路径(默认当前路径)
#owner:用户,默认当前用户
#group:组,默认当前组
#logger:用于记录日志
例如:
1 import shutil 2 ret = shutil.make_archive('www','tar',base_dir='/usr/etc/name') 3 #将/usr/etc/name下的文件打包到本目录下名为:www,打包方式为:tar 4 5 6 import shutil 7 ret=shutil.make_archive('/usr/etc/www','tar',base_dir='/usr/etc/name') 8 #将将/usr/etc/name下的文件打包到/usr/etc/www下,打包方式为:tar
shutil对压缩包的处理是采用ZipFile和TarFile两个模块来实现的
7、ZipFile和TarFile模块
1 1、zipfile 2 压缩: 3 import zipfile 4 z = zipfile.ZipFile('baoge','w') 5 z.write('a.log') 6 a.write('b,log') 7 z.close() 8 解压: 9 import zipfile 10 a = zipfile.ZipFile('baoge','r') 11 z.extractall() 12 z.close 13 14 2、tarfile 15 压缩: 16 z = tarfile.open('baoge','w') 17 z.add('/usr/bin/a.log',arcname='a.log') 18 z.add('/usr/bim/b.log',arcname='b.log') 19 z.close() 20 解压: 21 z = tarfile.open('baoge','r') 22 z.extractall() #可以设置解压地址 23 z.close()
8、josn和pick模块
序列化:指的是内存中的数据转化为字符串或者二进制的格式进行传输,pickle只支持二进制的格式传输,json只支持字符串的格式传输。注:传输过程只能是以二进制或字符串的格式;
pickle是python独有的序列化模块,json是所有语言都支持的序列化模块,json支持的序列化数据结构只有简单的,例如:字典、元组,函数则不支持,而pickle支持所有的数据结构(包括:函数等)。
json的pickle的方法只有四种:loads,load,dump,dumps
load和loads,dump和dumps的区别在于不用加载而直接进行操作
1 #序列化 2 import pickle 3 file = open('test','wb') 4 dic = { 5 'k1':1 6 } 7 file.write(pickle.dumps(dic)) 8 #pickle.dump(dic,file) 9 file.close() 10 11 12 #反序列化 13 import pickle 14 file = open('test','rb') 15 print(pickle.loads(file.read())) 16 #print(pickle.load(file)) 17 file.close()