作用:为了测试方便,总要造不少假数据到系统中,尽量模拟真实环境。(涉及到的人名,地名,邮箱等均为假的,如有雷同,切莫当真)
1 安装
pip install Faker
2 使用
>>> from faker import Faker >>> fake = Faker(locale='zh_CN') >>> fake.name() '张三' >>> fake.address() '上海市兴安盟县江北东莞路r座 803482'
参数 locale:为生成数据的文化选项(语种),默认为 en_US,只有使用了相关文化,才能生成相对应的随机信息
语种选择
zh_CN 中文简体zh_TW 中文繁体en_US 英文 (默认)
3 其他方法
city_suffix():市,县 country():国家 country_code():国家编码 district():区 geo_coordinate():地理坐标 latitude():地理坐标(纬度) longitude():地理坐标(经度) postcode():邮编 province():省份 address():详细地址 street_address():街道地址 street_name():街道名 street_suffix():街、路 ssn():生成身份证号 bs():随机公司服务名 company():随机公司名(长) company_prefix():随机公司名(短) company_suffix():公司性质,如'信息有限公司' credit_card_expire():随机信用卡到期日,如'03/30' credit_card_full():生成完整信用卡信息 credit_card_number():信用卡号 credit_card_provider():信用卡类型 credit_card_security_code():信用卡安全码 job():随机职位 first_name_female():女性名 first_name_male():男性名 name():随机生成全名 name_female():男性全名 name_male():女性全名 phone_number():随机生成手机号 phonenumber_prefix():随机生成手机号段,如139 ascii_company_email():随机ASCII公司邮箱名 ascii_email():随机ASCII邮箱: company_email():公司邮箱 email():普通邮箱 safe_email():安全邮箱 domain_name():生成域名 domain_word():域词(即,不包含后缀) ipv4():随机IP4地址 ipv6():随机IP6地址 mac_address():随机MAC地址 tld():网址域名后缀(.com,.net.cn,等等,不包括.) uri():随机URI地址 uri_extension():网址文件后缀 uri_page():网址文件(不包含后缀) uri_path():网址文件路径(不包含文件名) url():随机URL地址 user_name():随机用户名 image_url():随机URL地址 chrome():随机生成Chrome的浏览器user_agent信息 firefox():随机生成FireFox的浏览器user_agent信息 internet_explorer():随机生成IE的浏览器user_agent信息 opera():随机生成Opera的浏览器user_agent信息 safari():随机生成Safari的浏览器user_agent信息 linux_platform_token():随机Linux信息 user_agent():随机user_agent信息 numerify():三位随机数字 random_digit():0~9随机数 random_digit_not_null():1~9的随机数 random_int():随机数字,默认0~9999,可以通过设置min,max来设置 random_number():随机数字,参数digits设置生成的数字位数 pyfloat():随机Float数字 pyint():随机Int数字(参考random_int()参数) pydecimal():随机Decimal数字(参考pyfloat参数) pystr():随机字符串 random_element():随机字母 random_letter():随机字母 paragraph():随机生成一个段落 paragraphs():随机生成多个段落 sentence():随机生成一句话 sentences():随机生成多句话,与段落类似 text():随机生成一篇文章 word():随机生成词语 words():随机生成多个词语,用法与段落,句子,类似 binary():随机生成二进制编码 boolean():True/False language_code():随机生成两位语言编码 locale():随机生成语言/国际 信息 md5():随机生成MD5 null_boolean():NULL/True/False password():随机生成密码,可选参数:length:密码长度;special_chars:是否能使用特殊字符;digits:是否包含数字;upper_case:是否包含大写字母;lower_case:是否包含小写字母 sha1():随机SHA1 sha256():随机SHA256 uuid4():随机UUID date():随机日期 date_between():随机生成指定范围内日期,参数:start_date,end_date date_between_dates():随机生成指定范围内日期,用法同上 date_object():随机生产从1970-1-1到指定日期的随机日期。 date_time():随机生成指定时间(1970年1月1日至今) date_time_ad():生成公元1年到现在的随机时间 date_time_between():用法同dates future_date():未来日期 future_datetime():未来时间 month():随机月份 month_name():随机月份(英文) past_date():随机生成已经过去的日期 past_datetime():随机生成已经过去的时间 time():随机24小时时间 timedelta():随机获取时间差 time_object():随机24小时时间,time对象 time_series():随机TimeSeries对象 timezone():随机时区 unix_time():随机Unix时间 year():随机年份二 Pydantic
1 作用:使用 python 类型注释来进行数据校验和 settings 管理,ydantic 可以在代码运行时强制执行类型提示,并在数据校验无效时提供友好的错误提示(pycharm中),
2 安装
pip install pydantic
3 使用
from pydantic import baseModel
class User(baseModel):
id: int
name = "zhangsan"
user = User(id='123')
print(user.id, type(user.id))
print(user.name, type(user.name))
# 输出结果
123
zhangsan
User 就是一个模型(Models),有两个字段(属性),id,整数 int 类型,是必传的,name,字符串 string 类型,不是必传,有默认值,id 属性传的是字符串 ‘123’,它会根据模型字段类型进行转换为 int
# dict()
user = User(id='123')
print(user.dict())
print(dict(user))
# 输出结果
{'id': 123, 'name': 'zhangsan'}
{'id': 123, 'name': 'zhangsan'}
user = User(id='123', name="test")
print(user.json(), type(user.json()))
# 输出结果
{"id": 123, "name": "test"}
user = User(id='123', name="test")
print(user.schema(), type(user.schema()))
# 输出结果
{
"title": "User",
"type": "object",
"properties": {
"id": {
"title": "Id",
"type": "integer"
},
"name": {
"title": "Name",
"default": "小菠萝测试笔记",
"type": "string"
}
},
"required": [
"id"
]
}
user = User(id='123', name="test")
print(user.schema_json(), type(user.schema_json()))
# 输出结果
{
"title": "User",
"type": "object",
"properties": {
"id": {
"title": "Id",
"type": "integer"
},
"name": {
"title": "Name",
"default": "小菠萝测试笔记",
"type": "string"
}
},
"required": [
"id"
]
}
三 pathlib
1 官方定义:Object-oriented filesystem paths(面向对象的文件系统路径)
2 官方推荐:pathlib是一个从3版本开始就能完全替代os.path的内置库,在python官网中这样说 “对于字符串的低级路径操作,您也可以使用该 os.path模块”
3 使用
from pathlib import Path
#获取当前路径
print(Path.cwd())
# 获取上层目录
print(Path.cwd().parent)
# 获取上上层目录
print(Path.cwd().parent.parent)
# 拼接路径
paths = ['test', 'test.txt']
print(Path.cwd().parent.joinpath(*paths))
# E:pythonProjectmypackagetesttest.txt
# 创建 proje/test 目录
Path('project/test').mkdir(parents=True, exist_ok=True)
# 将project/test.txt 重命名为project/tests.txt
# Path('project/test.txt').rename('project/tests.txt')
Path.is_dir() # 判断是否是目录 Path.is_dir() # 是否是文件 Path.exists() # 判断路径是否存在 Path.open() # 打开文件(支持with) Path.resolve() # 返回绝对路径 Path.cwd() # 返回当前目录 Path.iterdir() # 遍历目录的子目录或者文件 Path.mkdir() # 创建目录 Path.rename() # 重命名路径 Path.unlink() # 删除文件或目录(目录非空触发异常) Path.joinpath() # 拼接路径四 tqdm
1 进度条库,内置库
from tqdm import tqdm
for i in tqdm(range(10000000)):
temp = ['你好'] * 20
五 pipupgrade
1 可以批量更新本地包、系统包
2 安装
pip install pipupgrade
3 使用
#批量更新 pipupgrade -V -l -y
-V、–verbose
显示详细输出
-s、–self
更新 pipupgrade
pipupgrade --self
-c、–check
检查并打印过时的软件包(不执行升级)
pipupgrade --check
-l、–latest
升级所有包 ,包括破坏更改的包
pipupgrade --latest
-a、–all
列出所有包
pipupgrade --all
-i、–interactive
更新每个包都显示确认框
pipupgrade --interactive
-r、–requirements
根据 requiremenet.txt 文件升级
pipupgrade --requirement requirement.txt
-y、–yes
一次性确认所有包更新的确认框
pipupgrade --六 shutil
1 内置库
2 使用
copy()
功能:复制文件
格式:shutil.copy('来源文件','目标地址')
返回值:复制之后的路径
copy2()
功能:复制文件,保留元数据
格式:shutil.copy2('来源文件','目标地址')
返回值:复制之后的路径
copyfileobj()
将一个文件的内容拷贝的另外一个文件当中
格式:shutil.copyfileobj(open(来源文件,'r'),open('目标文件','w'))
返回值:无
copyfile()
功能:将一个文件的内容拷贝的另外一个文件当中
格式:shutil.copyfile(来源文件,目标文件)
返回值:目标文件的路径
rmtree()
功能:移除整个目录,无论是否空
格式:shutil.rmtree(目录路径)
返回值:无
move()
功能:移动文件或者文件夹
格式:shutil.move(来源地址,目标地址)
返回值:目标地址
which()
功能:检测命令对应的文件路径
格式:shutil.which(‘命令字符串’)
返回值:命令文件所在位置
注意:window和linux不太一样。 window的命令都是.exe结尾,linux则不是
七 colorama
1 colorama是一个python专门用来在控制台、命令行输出彩色文字的模块,可以跨平台使用。
2 安装
pip install colorama
3 可用的格式常数:
# 字体颜色 Fore: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET. # 背景颜色 Back: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET. # 字体风格 Style: DIM, NORMAL, BRIGHT, RESET_ALL
4 使用
from colorama import Fore,Back,Style
print (Fore.RED + "some red text")
print (Back.GREEN + "and with a green background")
print (Style.DIM + "and in dim text")
print (Style.RESET_ALL)
print ("back to normal now!!")
八 pprint
1 内置库
2 使用
import pprint
data=['111111111111111111111111111','22222222222222222222222222',
'444444444444444444444444444', '33333333333333333333333333',
'555555555555555555555555555', '66666666666666666666666666',]
print(data)
print("--------分界线--------------")
pprint.pprint(data)
['111111111111111111111111111', '22222222222222222222222222', '444444444444444444444444444', '33333333333333333333333333', '555555555555555555555555555', '66666666666666666666666666'] --------分界线-------------- ['111111111111111111111111111', '22222222222222222222222222', '444444444444444444444444444', '33333333333333333333333333', '555555555555555555555555555', '66666666666666666666666666']



