python模块解析

一:模块的介绍:

  用一坨代码实现了某个功能;模块分为:自定义模块、内置模块、开源模块。

  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)
random

  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.stdout.write

 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
make_archive

 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()
zipfile和tarfile

   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()
pickle

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(python模块解析)