模块与包

package:相同的模块代码存储在一个目录下(即包里边会包含多个模块)。

 

包不能存储在文件夹的目录下,模块名称不能使用关键字。(不包含工程文件夹)

模块与包的实例

1)在工程文件夹testDve下新建一个名为module的python package,在module下再新建一个名为index的python package,index的python package下新建一个名为index的python文件,写入代码如下:

1 name="cch学习python"
2 
3 def login():
4     print("login success!")

2)在module的python package下新建一个名为logout的python文件,并在其中编写代码如下:

 1 from module.index.index import 2 print(name) 3 login() 

3)运行代码后,index文件中的内容就复制到logout文件中

模块实战

random模块实战

 1 import random 2 print(random.randrange(1,10)) 3 print(random.randint(10,20)) 

os模块实战

1)在testDev工程文件下新建一个名为module的python package,在module下新建一个名为“os学习”的文件;

2)在testDev工程文件下新建一个名为data的文件夹,data文件夹下新建一个log的文件,并且编写“hello world”的内容;

3)在os学习文件中编辑如下代码:

 1 import os
 2 
 3 print(os.path.dirname(__file__))   #获取当前路径
 4 print(os.path.dirname(os.path.dirname(__file__)))   #获取当前路径的上一级路径
 5 base_dir=os.path.dirname(os.path.dirname(__file__))
 6 print(base_dir)
 7 #路径的拼接
 8 print(os.path.join(base_dir,"data","log"))
 9 
10 filePath=os.path.join(base_dir,"data","log")
11 
12 with open(file=filePath,mode="r",encoding="utf-8") as f:
13     print(f.read())
 1 #获取操作系统
 2 print(os.name)
 3 #判断文件目录是否存在
 4 print(os.path.exists("D:\soft\python"))
 5 #判断是否是文件
 6 print(os.path.isfile("D:\soft\python"))
 7 #获取此路径下的所有文件夹
 8 for item in os.listdir("D:\soft\python"):
 9     print(item)
10 
11 print(os.system("ping www.baidu.com"))

以上代码运行的结果为:

hashlib模块实战

md5是一种加密方式,md5加密后基本破解不了

 需求:

1)针对字典进行排序;

2)把排序后的字典整成key1=value1&key2=value2的形式;

3)进行md5加密。

 1 import hashlib
 2 from urllib import parse
 3 import time
 4 def sign():
 5     dict1={"name":"cch","age":18,"city":"baoji","time":time.time()}
 6     data=dict(sorted(dict1.items(),key=lambda item:item[0]))     #对字典进行排序
 7     print(data)
 8     data1=parse.urlencode(data)   #把排序后的结果整理成key1=value1&key2=value2的形式
 9     print(data1)
10     m=hashlib.md5()
11     m.update(data1.encode("utf-8"))
12     print("加密后的信息结果:\n",m.hexdigest())
13 sign()

以上代码运行的结果为:

time模块实战

1 import time as t
2 
3 print("获取当前时间戳:",t.time())
4 print("返回当前日期的字符串:",t.ctime())
5 print("时间戳转为字符串:",t.ctime(t.time()))
6 print("本地化:",t.localtime(t.time()).tm_mon)
7 print("中国人的时间:",t.strftime("%y-%m-%d %H:%M:%S",t.localtime()))
8 t.sleep(5)
9 print("中国人的时间:",t.strftime("%y-%m-%d %X",t.localtime()))

以上代码运行的结果为:

datetime模块实战

datetime是对time的二次封装

1 print(datetime.datetime.now())  #获取当前时间
2 print(date)
3 print(datetime.datetime.now()+datetime.timedelta(days=15))    #在当前时间基础上添加时间
4 print(datetime.datetime.now()+datetime.timedelta(days=-15))
5 print(datetime.datetime.now()+datetime.timedelta(minutes=60))
6 print(datetime.datetime.fromtimestamp(time.time()))   #时间戳格式转换

以上代码运行的结果为:

json模块实战

序列化:把Python对象(字典,列表,元组)转为字符串的过程

反序列化:把字符串转为Python对象(字典,列表,元组)的过程

列表的序列化与反序列化
1 import json
2 lists=[x for x in range(6)]
3 list_str=json.dumps(lists)  #把列表转为字符串
4 print(list_str)
5 print(type(list_str))
6 str_list=json.loads(list_str)   #把字符串转为列表
7 print(str_list)
8 print(type(str_list))

以上代码运行的结果为:

元组的序列化与反序列化
1 import json
2 tuple1=("Python","Java")
3 tuple_str=json.dumps(tuple1)
4 print(tuple_str)
5 print(type(tuple_str))
6 str_tuple=json.loads(tuple_str)
7 print(str_tuple)
8 print(type(str_tuple))

以上代码运行的结果为:

字典的序列化与反序列化
1 import json
2 dict1={"name":"cch","age":18,"city":"宝鸡"}
3 dict_str=json.dumps(dict1,indent=True,ensure_ascii=False)  #indent=True为进行缩进
4 print(dict_str)
5 print(type(dict_str))
6 str_dict=json.loads(dict_str)
7 print(dict_str)
8 print(type(str_dict))

以上代码运行的结果为:

文件的序列化与反序列化

序列化:把第三方的内容写到文件中dump()

反序列化:从文件中读取数据load()

1 import json
2 dict1={"name":"cch","age":18,"city":"宝鸡"}
3 json.dump(dict1,open(file="json.txt",mode="w",encoding="utf-8"),ensure_ascii=False)  #进行文件写入操作时,ensure_ascii=False可防止中文乱码
4 data=json.load(open(file="json.txt",mode="r",encoding="utf-8"))
5 print(data)
6 print(type(data))

 以上代码运行的结果为:

库的介绍与安装

库的分类

标准库:解释器自带的库

第三方库:有组织或者是个人编写好的库,可以供全球的程序员使用

库的种类

Django:Web全栈开发框架

Flask:轻量级的Web开发框架

Selenium:UI自动化测试框架

Requests:接口测试框架

安装库

pip uninstall 库的名称

例如:pip install selenium、pip install flask、pip install xlrd(excel文件读)

卸载库

pip uninstall 库的名称