IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 有趣的 python 模块 -> 正文阅读

[开发测试]有趣的 python 模块

一 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

# 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"} <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))
# E:\pythonProject\mypackage\test\test.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']
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-03-22 20:54:32  更:2022-03-22 20:54:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 0:15:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码