pythondcf估值_Python常⽤模块
本节内容
模块介绍
os 模块
sys 模块
time & datetime模块
random 模块
json & picle
shutil 模块
shelve 模块
xml 模块
configparser 模块
hashlib 模块
1 模块介绍
模块,⽤⼀堆代码实现了某个功能的代码集合。
类似于函数式编程和⾯向过程编程,函数式编程则完成⼀个功能,其他代码⽤来调⽤即可,提供了代码的重⽤性和代码间的耦合。⽽对于⼀个复杂的功能来,可能需要多个函数才能完成(函数⼜可以在不同的.py⽂件中),n个 .py ⽂件组成的代码集合就称为模块。
如:os 是系统相关的模块;file是⽂件操作相关的模块
模块分为三种:
⾃定义模块
内置标准模块(⼜称标准库)
开源模块
2 os模块
提供对操作系统进⾏调⽤的接⼝
#!/usr/bin/env python#-*- coding:utf-8 -*-
wd()) #获取当前⼯作⽬录,即当前python脚本⼯作的⽬录路径
print(os.chdir('dirname')) #改变当前脚本的⼯作⽬录,相当于shell下的cd
print(os.curdir) #返回当前⽬录:('.')
print(os.pardir) #返回当前⽬录的⽗⽬录字符串名:('..')
os.makedirs('dirname1/dirname2') #可⽣成多层递归⽬录
os.mkdir('dirname') #⽣成单级空⽬录,相当于shell中的mkdir dirname
print(os.listdir('homework')) #列出指定⽬录下的所有⽂件和⼦⽬录,包括隐藏⽂件,并以列表⽅式打印
print(os.stat('homework')) #获取⽂件/⽬录属性信息
print(r'%s'%os.sep) #输出操作系统特定的路径分隔符,win下为'\\',linux下为'/'
print(os.linesep) #输出当前平台使⽤的⾏终⽌符,win下为'\r\n',linux下为'\n'
print(os.name) #输出字符串指⽰当前使⽤平台。win=>'nt';linux=>'posix'
os.system('ipconfig') #运⾏shell命令,直接显⽰
viron) #获取系统的环境变量
print(os.path.isabs('homework')) #判断给定路径是否为觉得路径
print(os.path.abspath('homework')) #返回绝对路径
print(os.path.split('day/homework')) #把绝对路径分为两部分...
print(os.path.dirname('day/homework')) #返回path的⽬录。其实就是os.path.split(path)的第⼀个元素
print(os.path.basename('day/homework')) #返回path最后的⽂件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第⼆个元素
print(ists('day/homework')) #如果path存在,返回True;如果path不存在,返回False
print(os.path.isfile('homework/⽬录')) #判断给定的path是不是⼀个⽬录
print(os.path.isdir('homework')) #判断给定的path是不是⼀个⽬录
print(os.path.join('homework','Python.py')) #拼接地址,可以根据系统⾃动选择正确的路径分隔符"/"或"\"
#⽂件的三个时间
print(atime('homework'))print(ime('homework'))print(ime('homework'))
os模块的基本使⽤
3 sys模块
importsys
sys.argv#命令⾏参数List,第⼀个元素是程序本⾝路径
sys.version #返回python解释程序的版本信息
sys.maxsize #返回最⼤的int值
sys.path #返回模块的搜索路径,初始化时使⽤python环境变量的值
sys.platform #返回操作系统平台名称,"win32" "linux2"
sys.builtin_module_names #返回python中的所有内建模块的名称
sys.stdout
sys.stderr
sys.stdin#处理标准输出/输⼊#输出重定向#错误输出重定向#后期补充吧,我也不知道怎么⽤
sys模块的基本使⽤
4 time & datetime模块
importtimeprint(time.altzone/(60*60)) #返回与utc时间差,以秒计算
print(time.asctime()) #返回时间格式'Thu Mar 2 21:55:29 2017'
print(time.localtime()) ##返回本地时间 的struct time对象格式
ime()) #返回utc时间的struc时间对象格式
print(time.asctime(time.localtime())) #返回时间格式'Thu Mar 2 21:55:29 2017'
ime()) #返回时间格式'Thu Mar 2 21:55:29 2017'
#⽇期字符串 转成 时间戳
string_2_struct = time.strptime("2016/05/22","%Y/%m/%d") #将 ⽇期字符串 转成 struct时间对象格式
print(string_2_struct)
struct_2_stamp= time.mktime(string_2_struct) #将struct时间对象转成时间戳
print(struct_2_stamp)#将时间戳转为字符串格式
ime(time.time()-86640)) #将utc时间戳转换成struct_time格式
print(time.strftime("%Y-%m-%d %H:%M:%S",ime()) ) #将utc struct_time格式转成指定的字符串格式
time模块的基本使⽤
importtimeimportdatetimeprint(w()) #返回现在时刻,格式'2017-03-02 22:04:26.032785' print(datetime.date.fromtimestamp(time.time())) #时间戳直接转成⽇期格式 '2017-03-02'
print(w() )print(w() + datetime.timedelta(3)) #当前时间+3天
print(w() + datetime.timedelta(-3)) #当前时间-3天
print(w() + datetime.timedelta(hours=3)) #当前时间+3⼩时
print(w() + datetime.timedelta(minutes=30)) #当前时间+30分
c_time=w()print(place(minute=3,hour=2)) #时间替换
datetime模块的基本使⽤
5 random模块
随机数
import random
print(random.randint(1,10))
print(random.randrange(1,20,2))
print(random.sample(range(100),5))
⽣成随机验证码
import random
checkcode = ''
for i in range(4):
current = random.randrange(0,4)
if current != i:
temp = chr(random.randint(65,90))
else:
temp = random.randint(0,9)
checkcode += str(temp)
print(checkcode)
import random
import string
print(string.ascii_uppercase)
print(string.ascii_letters)
print(string.ascii_lowercase)
print(string.digits)
soure = string.ascii_uppercase + string.ascii_letters + string.ascii_lowercase + string.digits
print(''.join(random.sample(soure,4)))
6 json & pickle
之前我萌⽤过的eval内置⽅法可以将⼀个字符串转成python对象,不过eval⽅法有局限性,eval只能对普通的数据类型(数字,字典,元组,列表,集合[我猜的,仅供参考])进⾏对象和字符串之间转换,当遇到特殊的类型时eval就不灵了,⽽且eval的重点是⽤来执⾏⼀个字符串表达式,并返回表达式的值。怎么办呢,还好我们有json和pickle序列化模块。
6.1 什么是序列化
我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化。
6.2 为什么要序列化
1.持久保存当前状态
2.跨平台数据交互
6.3 josn模块
如果我们要在不同的编程语⾔之间传递对象,就必须把对象序列化为标准格式,⽐如XML,但更好的
⽅法是序列化为JSON,因为JSON表⽰出来就是⼀个字符串,可以被所有语⾔读取,也可以⽅便地存储到磁盘或者通过⽹络传输。JSON不仅是标准格式,并且⽐XML更快,⽽且可以直接在Web页⾯中读取,⾮常⽅便
json的使⽤⽅法如下:
import json
# json的序列化
date = {'name':'40kuai','age':24}
f = open('test.json','w',encoding='utf-8')
f.write(json.dumps(date))
# json.dump(date,f) # 序列化⽂件的另⼀种⽅式
f.close()
# json的反序列化
f = open('test.json',encoding='utf-8')
date = json.ad())
# date = json.load(f) # 反序列化⽂件的另⼀种⽅式
print(date)
f.close()
importjson#dct="{'1':111}"#json 不认单引号#dct=str({"1":111})#报错,因为⽣成的数据还是单引号:{'one': 1}
dct='{"1":"111"}'
print(json.loads(dct))#conclusion:#⽆论数据是怎样创建的,只要满⾜json格式,就可以json.loads出来,不⼀定⾮要dumps的数据才能loads
注意点
6.4 pickel模块
和json差不多(差到哪⼉,下⾯说),直接来看使⽤,⾃⼰去多撸⼏遍吧。
import pickle
date = {'name':'40块','age':24}
python怎么读取json文件# pickle的序列化
f = open('test.pickle','wb')
f.write(pickle.dumps(date))
# pickle.dump(date,f) # pickle的另⼀种⽅法
f.close()
# pickle的反序列化
f = open('test.pickle','rb')
date = pickle.ad())
# date = pickle.load(f) # pickle的另⼀种⽅法
print(date)
f.close()
6.5 Json 和 Pickle的区别(欢迎指导错误)
1.使⽤场景
json⽀持不同语⾔之间的数据传递,pickle是python中特有的,仅⽀持python。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。