七.包和模块
-
package:针对代码结构的组织,一个包里面可以拥有很多的python文件
-
module:一个python文件就是一个模块
1.从另一个模块直接引用所需代码
模块必须是存放在包下边的,而不是目录下
from 模块1名 import 代码名
快速引用模块1所有的变量函数等,*正则
from index import *
index.py模块
def login():
print('login sucess')
name = 'hello,beautiful girl'
first.py直接调用
#从另一个模块调用代码
from index import name,login
print(name)
(login())
同包不同模块引用先进入模块,不同包引用先进入包名,
八.库:
库的分类
1、标准库 安装Python环境后自带的
2、第三方的库 第三方的个人以及公司发布
pip install 库的名称
pip uninstall 库的名称
3、自定义的库
selenium:WEB自动化测试框架
requests:API测试框架
flask:轻量级WEB开发框架
django:全栈WEB开发框架
fastapi:异步WEB框架
1.open文件的io操作
操作文件三个步骤: 1、打开文件 2、读/写 3、关闭文件
文件操作的模式: a :追加 w :写(假设文件里面有内容,先清空再写) r :读
如果出错,文件路径有问题
写中文出错的时候需要加上encodings='utf-8' x=open('xc.txt','r',encoding='utf-8'),
utf-8不行的时候使用gbk,或者gb2312
写:
1.1open函数写文件的逻辑
1.被操作的文件如果不存在会自动创建文件 2.如果文件存在,且有内容,模式是w,先清空再写 3.模式是a,会在原来内容上追加新的内容
1.2批量写入,文件写入的内容必须是字符串str,其余的都需要强制转换
list=[x for x in range(10)]
f=open('log.txt','w')
for item in list:
f.write('\n'+str(item))
f.close()
1.3with上下文,内部会自动关闭文件,以防忘写close内存溢出,通常使用此方法,读写操作与open一致
with open('log.txt','r') as f:
for item in f.readlines():
print(item.strip())
#文件io操作
#open函数写文件的逻辑
#1.被操作的文件如果不存在会自动创建文件2.如果文件存在,且有内容,模式是w,先清空再写3.模式是a,会在原来内容上追加新的内容
f=open('log.txt','r',encoding='utf-8')
# f.write('\n远离男人保平安')
# f.close()
#批量写入,文件写入的内容必须是字符串str,其余的都需要强制转换
# list=[x for x in range(10)]
# f=open('log.txt','w')
# for item in list:
# f.write('\n'+str(item))
# f.close()
#read()读取文件内容
# print(f.read())
# f.close()
#读取第一行内容
# print(f.readline())
#按行读取文件内容,并且取消空格
for item in f.readlines():
print(item.strip())
#with上下文,内部会自动关闭文件,以防忘写close内存溢出,通常使用此方法,读写操作与f一致
# with open('log.txt','r') as f:
# for item in f.readlines():
# print(item.strip())
读:
读取的时候要先把写的部分注释掉
全部读取
读取第一行内容
按行读取内容,并取消空格
2.伪造随机数random
范围内的内容全部随机
print(random.randint(10,99))
3.json库:
用处:
序列化:把python对象(list、tuple/dict)转换为字符串的过程 dumps() 反序列化:把字符串转为Python对象的过程 loads()
注意:
json数据库使用要先导入,通常会自己导入,多处理代码级别的接口测试 字典和列表反序列化都会变回自己的格式,元组反序列化会变成列表
''
json数据库使用要先导入,多处理代码级别的接口测试
序列化:把python对象(list、tuple/dict)转换为字符串的过程 dumps()
反序列化:把字符串转为Python对象的过程 loads()
'''
import json
#字典的序列化
dict ={'name':'a','age':18}
dict_str=json.dumps(dict)
print(dict_str,type(dict_str))
#字符串的反序列化
str_dict=json.loads(dict_str)
print(str_dict,type(str_dict))
#列表的序列化
list=[x for x in range(10)]
list_str=json.dumps(list)
print(list_str,type(list_str))
#字符串变回列表
str_list=json.loads(list_str)
print(str_list,type(str_list))
#元组经过反序列化后变成列表的数据类型
tuple=(1,2,3)
#元组序列化
tuple_str=json.dumps(tuple)
print(tuple_str,type(tuple_str))
#元组反序列化
str_tuple=json.loads(tuple_str)
print(str_tuple,type(str_tuple))
4.time
1.获取当前的时间
print(datetime.datetime.now())
2.休眠
3.对现有的时间做加减乘除
#休眠
import datetime
import time
# time.sleep(5)
#获取当前时间的时间戳,查看转换的地址:https://tool.lu/timestamp/
print(time.time())
#时间戳转换为当前时间
t=time.localtime(time.time())
print(t.tm_year,t.tm_mon,t.tm_mday,t.tm_hour,t.tm_min,t.tm_sec)
#获取当前时间
print(time.strftime('%y-%m-%d %H:%M:%S',time.localtime()))
#获取当前的时间
print(datetime.datetime.now())
#对现有的时间做加减乘除
print(datetime.datetime.now()+datetime.timedelta(hours=-2))
4.获取当前时间戳
print(time.time())
标签:文件,模块,list,json,str,print,序列化 From: https://www.cnblogs.com/zxx4/p/16666926.html