一 Faker
作用:为了测试方便,总要造不少假数据到系统中,尽量模拟真实环境。(涉及到的人名,地名,邮箱等均为假的,如有雷同,切莫当真) 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 <class 'int'>
zhangsan <class 'str'>
User 就是一个模型(Models),有两个字段(属性),id,整数 int 类型,是必传的,name,字符串 string 类型,不是必传,有默认值,id 属性传的是字符串 ‘123’,它会根据模型字段类型进行转换为 int
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"} <class 'str'>
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"
]
}
<class 'dict'>
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"
]
}
<class 'str'>
三 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))
Path('project/test').mkdir(parents=True, exist_ok=True)
Path.is_dir()
Path.is_dir()
Path.exists()
Path.open()
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']
|