Python自动化:基于faker批量生成模拟数据(以电商行业销售数据为例)
引言:个人认为,“造数据”是一个数据分析师的一项基本技能,当然啦,“造数据”不是说胡编乱造,而是根据自己的需求去构造一些模拟数据集,用于测试等用途,而且使用虚拟数据不用担心数据隐私和安全问题,嘿嘿。
文章思路:random标准库 → faker第三方库 → 构造销售数据集示例
效果展示:
一、random标准库常用方法
random.seed(a=None) 可以设置随机数生成器的种子,使得每次运行时的随机数序列相同。
(一)生成整数
生成指定区间范围内的随机整数:
# 生成一个在 1 到 100 之间的随机整数
random.randint(1, 100)
(二)生成浮点数
生成指定范围内的随机浮点数,使用round控制小数精度:
# 生成一个在 10 到 100 之间的随机浮动数
random.uniform(10, 100) # 例如输出:54.7938611692445
# 保留2位小数
round(random.uniform(10, 100), 2)
(三)随机抽取、打乱序列
1、从序列中随机抽取一个元素:
# 从列表中随机选择一个元素
random.choice([1, 2, 3, 4, 5])
2、从随机序列中随机抽取k个元素,支持设置权重(每个元素被选中的概率):
# random.choices(seq, weights=None, k=1)
# 从列表中随机选择两个元素,且weights为每个元素被选中的概率
random.choices([1, 2, 3, 4, 5], weights=[0.1, 0.1, 0.3, 0.2, 0.3], k=2) # 例如输出:[3, 5]
3、与上条类似,从给定的序列中随机选择 k
个元素,返回一个新列表,原序列不受影响:
# 从列表中随机选择 3 个不重复的元素
random_sample = random.sample([1, 2, 3, 4, 5], k=3) # 例如输出:[1, 4, 3]
4、随机打乱序列:
# 将列表随机排列
lst = [1, 2, 3, 4, 5]
random.shuffle(lst) # 例如输出:[2, 5, 4, 1, 3]
(四)生成随机布尔值
1、随机生成1个随机布尔值:
# 生成一个随机浮动数,并转换为布尔值
random_bool = random.random() < 0.5
2、生成一个随机布尔序列:
list(random.random() < 0.5 for _ in range(10))
二、faker第三方库(需要下载)
faker 库是 Python 中常用的生成假数据的库,提供了大量的功能来生成各种类型的虚拟数据,如姓名、地址、日期等。以下是 faker 库的一些常用方法,按类别整理:
注:使用前一般要初始化,如下
from faker import Faker
fake = Faker()
(一)个人信息类
1、生成一个随机姓名(也可以只生成姓或名)
# 生成一个随机姓名
name = fake.name() # 例如:'John Doe'# 生成一个随机名
first_name = fake.first_name()# 生成一个随机姓氏
last_name = fake.last_name()
2、生成一个随机地址
# 手续代码我就不做赋值了,只列方法
fake.address()
3、生成一个随机城市、州/省份、国家
# 城市
fake.city() # 例如:'New York'# 州/省份
fake.state() # 例如:'California'# 国家
fake.country() # 例如:'United States'
4、电子邮件email
fake.email() # 例如:'john.doe@example.com'
5、电话号码
fake.phone_number() # 例如:'(555) 555-5555'
6、身份证
fake.ssn() # 生成一个18位的身份证号
(二)日期
生成指定时间范围内的随机日期,还要结合 datetime 库:
from faker import Faker
from datetime import datefake = Faker()# 使用 datetime.date() 来创建日期对象
start_date = date(2023, 1, 1)
end_date = date(2023, 12, 31)# 生成指定范围内的随机日期
random_date = fake.date_between(start_date=start_date, end_date=end_date)
print(random_date) # 例如:'2023-06-15'
(三)文本和公司信息
# 生成一个随机的句子
fake.sentence() # 例如:'The quick brown fox jumps over the lazy dog.'# 生成一个随机段落
fake.paragraph() # 例如:'Lorem ipsum dolor sit amet, consectetur adipiscing elit.'# 生成一个随机的公司名称
fake.company() # 生成一个随机的职位名称
fake.job() # 例如:'Software Engineer'
(四)用户 ID
# 生成一个随机的 UUID
fake.uuid4() # 例如:'f9a86cc4-f7f7-4686-b49b-76d1b74f9f39'
三、虚拟电商行业销售数据生成案例
生成一个有1000条记录的销售数据集,包含以下字段:用户ID、用户名、email、产品名称、购买数量、单价、消费总金额、(下单)购买日期。
from faker import Faker
from datetime import date
import pandas as pd
import randomfake = Faker() # 初始化Faker实例# 定义电商数据生成函数
def func(data_size):datas = []for i in range(data_size):# 生成用户idid = str(fake.uuid4()) # 生成用户名字name = fake.name() # 生成用户邮箱email = fake.email() # 生成商品名称product_name = fake.word() # 生成购买数量quantity = random.randint(1,10) # 生成单价。使用uniform生成a~b之间的随机浮动数,并使用round保留两位小数unit_price = round(random.uniform(50,200), 2)# 生成同消费金额total_price = round(quantity*unit_price, 2)# 随机生成2024上半年这个时间段的购买日期sale_date = fake.date_between(start_date=date(2024,1,1), end_date=date(2024,6,30))datas.append({'id': id,'name': name,'email': email,'product_name': product_name,'quantity': quantity,'unit_price': unit_price,'total_price': total_price,'sale_date': sale_date})return pd.DataFrame(datas) # 将数据转化为DataFrame形式,作为返回值# 测试入口
data_size = 1000 # 确定要造的数据数量
df = func(data_size)
print(df.head(5))
输出前5条数据,如下:
但是,这样的数据集是存在问题的,为什么呢?
因为数据集是销售数据,存储的是用户下单的历史记录,用户可能不止一次下单购买,换句话来说,在数据集中,用户id 是可能重复的,出现重复id表示该id的用户下单多次,但是按照上面的方法生成的数据集,id 是没有重复的。
怎么解决?往下看代码,增加了一个_generate_ids函数用于生成1000条包含id可以重复的数据:
from faker import Faker
from datetime import date
import pandas as pd
import randomfake = Faker() # 初始化Faker实例# 定义生成可重复ID的函数,其中参数ration为重复的ID占比,比如0.3
def _generate_ids(data_sizes, ration):# 计算重复的id数num_dupl = int(data_sizes*ration)# 先生成一部分不重复的idids = [str(fake.uuid4()) for _ in range(data_sizes - num_dupl)]# 随机抽取一部分id来重复ids.extend(random.sample(ids, num_dupl))# 打乱顺序random.shuffle(ids)return ids# 定义生成数据的函数
def func(data_sizes, ration):datas = []ids = _generate_ids(data_sizes, ration)for id in ids:# 生成用户名字name = fake.name() # 生成用户邮箱email = fake.email() # 生成商品名称product_name = fake.word() # 生成购买数量quantity = random.randint(1,10) # 生成单价。使用uniform生成50~200之间的随机浮动数,并使用round保留两位小数unit_price = round(random.uniform(50,200), 2)# 生成同消费金额total_price = round(quantity*unit_price, 2)# 随机生成2024上半年这个时间段的购买日期sale_date = fake.date_between(start_date=date(2024,1,1), end_date=date(2024,6,30))datas.append({'id': id,'name': name,'email': email,'product_name': product_name,'quantity': quantity,'unit_price': unit_price,'total_price': total_price,'sale_date': sale_date})return pd.DataFrame(datas) # 将数据转化为DataFrame形式,作为返回值data_size = 1000 # 确定要造的数据数量
ration = 0.3 # 确定重复比例
df = func(data_size, ration)# 查找 'id' 列中重复的行
df[df.duplicated(subset='id')]
找出并输出 id 重复的行(即记录),可以发现刚好有300条数据重复,符合代码里设置的含0.3重复数据的比例。
当然了,其他字段(列名)如果也要求可以有重复 ,可以按照类似方法更改代码。
以增加一个可以重复的 “商品类别” 字段为例,:
# 先确定类别有几类,假如有5个类别
producct_categories = ['A', 'B', 'C', 'D', 'E'] # 方法一:手动定义
# 最后随机挑取一个类别作为该条数据的类别即可
category = random.choice(producct_categories)# ——————————————————————————————————————————# 先确定类别有几类,假如有5个类别
producct_categories = [fake.word() for _ in range(5)] #方法二:fake.word()函数,生成一个单词作为类别名称
# 最后随机挑取一个类别作为该条数据的类别即可
category = random.choice(producct_categories)
到这里,虚拟销售数据的生成就到此结束啦,还有一个点,就是可以生成中文数据,只需要更改下面一行代码的参数:
# 初始化Faker实例的时候,加入参数"zh_CN"就可以了,不写参数则默认生成英文数据
fake = Faker("zh_CN")
更改语言后的效果如下 :
相关文章:
Python自动化:基于faker批量生成模拟数据(以电商行业销售数据为例)
引言:个人认为,“造数据”是一个数据分析师的一项基本技能,当然啦,“造数据”不是说胡编乱造,而是根据自己的需求去构造一些模拟数据集,用于测试等用途,而且使用虚拟数据不用担心数据隐私和安全…...
3.3 OpenAI GPT-4, GPT-3.5, GPT-3 模型调用:开发者指南
OpenAI GPT-4, GPT-3.5, GPT-3 模型调用:开发者指南 OpenAI 的 GPT 系列语言模型,包括 GPT-4、GPT-3.5 和 GPT-3,已经成为自然语言处理领域的标杆。无论是文本生成、对话系统,还是自动化任务,开发者都可以通过 API 调用这些强大的模型来增强他们的应用。本文将为您详细介…...
【Spring Boot】掌握 Spring 事务:隔离级别与传播机制解读与应用
前言 🌟🌟本期讲解关于spring 事务传播机制介绍~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🔥 你的点赞就是小编不断更新的最大动力 🎆那么废话…...
力扣203题—— 移除链表元素
题目 递归法使用 if(headnull){return null; }//假设remove返回后面已经去掉val值的链表 我们用head.next去存放他,接着我们要判断此时head head值是否等于val,如果等于我们就返回后继元素即可 head.nextremove(head.next,val); if(head.valval){return…...
Express中间件
目录 Express中间件 中间件的概念 next函数 全局中间与局部中间件 多个中间件 中间的5个注意事项 中间的分类 应用级中间件 路由级中间件 错误级中间件 Express内置中间件 express.json express.urlencoded 第三方中间件编辑 自定义中间件 Express中间件 中间…...
【AIGC】SYNCAMMASTER:多视角多像机的视频生成
标题:SYNCAMMASTER: SYNCHRONIZING MULTI-CAMERA VIDEO GENERATION FROM DIVERSE VIEWPOINTS 主页:https://jianhongbai.github.io/SynCamMaster/ 代码:https://github.com/KwaiVGI/SynCamMaster 文章目录 摘要一、引言二、使用步骤2.1 TextT…...
模块化架构与微服务架构,哪种更适合桌面软件开发?
前言 在现代软件开发中,架构设计扮演着至关重要的角色。两种常见的架构设计方法是模块化架构与微服务架构。它们各自有独特的优势和适用场景,尤其在C#桌面软件开发领域,模块化架构往往更加具有实践性。本文将对这两种架构进行对比࿰…...
Ubuntu 24.04 LTS 安装 tailscale 并访问 SMB共享文件夹
Ubuntu 24.04 LTS 安装 tailscale 安装 Tailscale 官方仓库 首先,确保系统包列表是最新的: sudo apt update接下来,安装 Tailscale 所需的仓库和密钥: curl -fsSL https://tailscale.com/install.sh | sh这会自动下载并安装 …...
fgets、scanf存字符串应用
题目1 夺旗(英语:Capture the flag,简称 CTF)在计算机安全中是一种活动,当中会将“旗子”秘密地埋藏于有目的的易受攻击的程序或网站。参赛者从其他参赛者或主办方偷去旗子。 非常崇拜探姬的小学妹最近迷上了 CTF&am…...
C#高级:用Csharp操作鼠标和键盘
一、winform 1.实时获取鼠标位置 public Form1() {InitializeComponent();InitialTime(); }private void InitialTime() {// 初始化 Timer 控件var timer new System.Windows.Forms.Timer();timer.Interval 100; // 设置为 100 毫秒,即每 0.1 秒更新一次timer.…...
关于AI agent的学术论文实验部分:准确率,响应时间,用户满意度
关于AI agent的学术论文实验部分 在撰写关于AI agent的学术论文时,实验设计和实施是关键部分,仅搭建完成AI agent通常是不够的,需要通过严谨的实验来验证其性能、效果和创新性。以下以一个在智能客服场景中应用AI agent的例子,说明如何完成实验: 明确实验目的:确定通过实…...
消息队列实战指南:三大MQ 与 Kafka 适用场景全解析
前言:在当今数字化时代,分布式系统和大数据处理变得愈发普遍,消息队列作为其中的关键组件,承担着系统解耦、异步通信、流量削峰等重要职责。ActiveMQ、RabbitMQ、RocketMQ 和 Kafka 作为市场上极具代表性的消息队列产品࿰…...
postgresql表分区及测试
本文主要采用list类型实现表分区,并对表分区数据进行查询对比,数据量6000万条以上,速度相差10倍以上。 一、创建表,以substationcode字段为ist类型表分区 CREATE TABLE "public"."d_population_partition" …...
VUE学习笔记(入门)1__创建VUE实例
核心步骤 <div id"app"><!-- 这里存放渲染逻辑代码 --><h1>{{ msg }}</h1><a href"#">{{count}}</a> </div><!-- 引入在线的开发版本核心包 --> <!-- 引入核心包后全局可使用VUE构造函数 --> <…...
STL—stack与queue
目录 Stack stack的使用 stack的模拟实现 queue queue的使用 queue的模拟实现 priority_queue priority_queue的用法 priority_queue的模拟实现 容器适配器 种类 Stack http://www.cplusplus.com/reference/stack/stack/?kwstack stack是栈,后入先出 stack的…...
pthread_create函数
函数原型 pthread_create 是 POSIX 线程(pthread)库中的一个函数,用于在程序中创建一个新线程。 #include <pthread.h>int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *a…...
suctf2025
Suctf2025 --2标识为看的wp,没环境复现了 所有参考资料将在文本末尾标明 WEB SU_photogallery 思路👇 构造一个压缩包,解压出我们想解压的部分,然后其他部分是损坏的,这样是不是就可以让整个解压过程是出错的从而…...
二、点灯基础实验
嵌入式基础实验第一个就是点灯,地位相当于编程界的hello world。 如下为LED原理图,要让相应LED发光,需要给I/O口设置输出引脚,低电平,二极管才会导通 2.1 打开初始工程,编写代码 以下会实现BLINKY常亮&…...
ESP8266-01S、手机、STM32连接
1、ESP8266-01S的工作原理 1.1、AP和STA ESP8266-01S为WIFI的透传模块,主要模式如下图: 上节说到,我们需要用到AT固件进行局域网应用(ESP8266连接的STM32和手机进行连接)。 ESP8266为一个WiFi透传模块,和…...
微服务学习:基础理论
一、微服务和应用现代化 1、时代的浪潮,企业的机遇和挑战 在互联网化数字化智能化全球化的当今社会,IT行业也面临新的挑战: 【快】业务需求如“滔滔江水连绵不绝”,企业需要更快的交付【变】林子大了,百色用户&…...
【c++继承篇】--继承之道:在C++的世界中编织血脉与传承
目录 引言 一、定义二、继承定义格式2.1定义格式2.2继承关系和访问限定符2.3继承后子类访问权限 三、基类和派生类赋值转换四、继承的作用域4.1同名变量4.2同名函数 五、派生类的默认成员构造函数5.1**构造函数调用顺序:**5.2**析构函数调用顺序:**5.3调…...
Java操作Excel导入导出——POI、Hutool、EasyExcel
目录 一、POI导入导出 1.数据库导出为Excel文件 2.将Excel文件导入到数据库中 二、Hutool导入导出 1.数据库导出为Excel文件——属性名是列名 2.数据库导出为Excel文件——列名起别名 3.从Excel文件导入数据到数据库——属性名是列名 4.从Excel文件导入数据到数据库…...
基于VSCODE+GDB+GDBSERVER远程单步调试设备篇(可视化界面)
目录 说明 配置方法 1)VSCODE必备插件 2)配置launch.json文件,用于GDB调试 调试步骤 目标板运行程序 1)已启动程序,通过attach方式进入调试 2)通过gdbserver启动时加载程序(程序路径根据实际情…...
【设计模式】 单例模式(单例模式哪几种实现,如何保证线程安全,反射破坏单例模式)
单例模式 作用:单例模式的核心是保证一个类只有一个实例,并且提供一个访问实例的全局访问点。 实现方式优缺点饿汉式线程安全,调用效率高 ,但是不能延迟加载懒汉式线程安全,调用效率不高,能延迟加载双重检…...
lvm快照备份
前提 数据文件要在逻辑卷上; 此逻辑卷所在卷组必须有足够空间使用快照卷; 数据文件和事务日志要在同一个逻辑卷上; 前提:MySQL数据lv和将要创建的快照要在同一vg,vg要有足够的空间存储 优点 几乎是热备&…...
PHP CRM售后系统小程序
💼 CRM售后系统 📺这是一款基于PHP和uniapp深度定制的CRM售后管理系统,它犹如企业的智慧核心,精准赋能销售与售后管理的每一个环节,引领企业步入精细化、数字化的全新管理时代。系统集成了客户管理、合同管理、工单调…...
ETL 数据抽取
ETL ETL 数据抽取 ETL(Extract, Transform, Load)是数据集成和处理的重要过程,其中数据抽取(Extract)是第一步,负责从各种数据源中提取数据。以下是ETL数据抽取的详细说明和常用工具: 1. 数据…...
FANUC机器人系统镜像备份与恢复的具体步骤(图文)
FANUC机器人系统镜像备份与恢复的具体步骤(图文) 镜像备份: 如下图所示,进入文件—工具—切换设备,找到插入的U盘UT1, 如下图所示,进入U盘目录后,创建目录,这里目录名称为11, 如下图所示...
MindsDB - 构建企业数据源 AI 对话
一、关于 MindsDB MindsDB是世界上最有效的解决方案,用于构建与混乱的企业数据源对话的AI应用程序。把它想象成图书管理员Marie Kondo。 github : https://github.com/mindsdb/mindsdb官网:https://www.mindsdb.com/官方文档:https://docs.…...
正则表达式(python版最全面,最易懂)
正则表达式 正则表达式英文称regular expression 定义:正则表达式是一种文本模式匹配的工具,用于字符串的搜索,匹配和替换。在excel,word以及其他的文本编辑器都可直接适配。 一、基本匹配规则 字面值字符:例如字母、数字、空格…...
QT 使用QTableView读取数据库数据,表格分页,跳转,导出,过滤功能
文章目录 效果图概述功能点代码分析导航栏表格更新视图表格导出表格过滤 总结 效果图 概述 本案例用于对数据库中的数据进行显示等其他操作。数据库的映射,插入等功能看此博客框架:数据模型使用QSqlTableModel,视图使用QTableView࿰…...
golang标准库path/filepath使用示例
文章目录 前言一、常用方法示例1.将相对路径转换为绝对路径2.获取路径中最后一个元素3.获取路径中除去最后一个元素的部分4.路径拼接5.将路径拆分为目录和文件名两部分6.返回一个相对路径7.文件路径遍历8.根据文件扩展名过滤文件9.使用正则表达式进行路径匹配 前言 path/filep…...
【日志篇】(7.6) ❀ 01. 在macOS下刷新FortiAnalyzer固件 ❀ FortiAnalyzer 日志分析
【简介】FortiAnalyzer 是 Fortinet Security Fabric 安全架构的基础,提供集中日志记录和分析,以及端到端可见性。因此,分析师可以更有效地管理安全状态,将安全流程自动化,并快速响应威胁。具有分析和自动化功能的集成…...
12 分布式事务
分布式事务产生的原因 我们拿mysql数据库来说,当数据库为单体数据库的时候,我们打开事务,执行sql为预执行阶段,最后commit时通过日志控制最终全部提交后存储到磁盘中,如果commit失败,可以通过日志控制回滚…...
移远通信多模卫星通信模组BG95-S5获得Skylo网络认证,进一步拓展全球卫星物联网市场
近日,全球领先的物联网整体解决方案供应商移远通信正式宣布,其支持“卫星蜂窝”多模式的高集成度NTN卫星通信模组BG95-S5已成功获得NTN网络运营商Skylo的网络认证。BG95-S5也成为了获得该认证的最新款移远卫星通信模组。 BG95-S5模组顺利获得Skylo认证&a…...
51.WPF应用加图标指南 C#例子 WPF例子
完整步骤: 先使用文心一言生成一个图标如左边使用Windows图片编辑器编辑,去除背景使用正方形,放大图片使图标铺满图片使用格式工程转换为ico格式,分辨率为最大 在资源管理器中右键项目添加ico类型图片到项目里图片属性设置为始终…...
OpenEuler学习笔记(三):为什么要搞OpenEuler?
为什么要搞OpenEuler? 技术自主可控需求 在信息技术领域,操作系统是关键的基础软件。过去,很多关键技术被国外厂商掌控,存在技术“卡脖子”的风险。OpenEuler的出现可以为国内提供一个自主可控的操作系统选择。例如,在…...
Apache Hive--排序函数解析
在大数据处理与分析中,Apache Hive是一个至关重要的数据仓库工具。其丰富的函数库为数据处理提供了诸多便利,排序函数便是其中一类非常实用的工具。通过排序函数,我们能够在查询结果集中为每一行数据分配一个排名值,这对于数据分析…...
LLMs之Dataset:中文互联网基础语料2.0的简介、下载和使用方法、案例应用之详细攻略
LLMs之Dataset:中文互联网基础语料2.0的简介、下载和使用方法、案例应用之详细攻略 目录 中文互联网基础语料2.0的简介 1、特点 中文互联网基础语料2.0的下载和使用方法 中文互联网基础语料2.0的案例应用 中文互联网基础语料2.0的简介 2025年1月发布࿰…...
深入剖析iOS网络优化策略,提升App性能
一、引言 在当今移动互联网时代,iOS 应用的网络性能直接关系到用户体验。无论是加载速度缓慢、频繁的网络错误,还是高额的流量消耗,都可能导致用户流失。因此,iOS 网络优化成为开发者提升应用质量、增强用户满意度的关键环节。本文…...
unity2022以上导出到AndroidStudio后更新步骤
1、unity里面Export出unityLibrary 2、导出apk,里面才包含libil2cpp(新版unity无法直接导出libil2cpp 3、注释AS项目app下的build.gradle里面包含unityLibrary的代码 4、注释AS项目settings.gradle包含unityLibrary的代码 5、删除AS项目里面的unityLibrary文件夹 6、…...
03JavaWeb——Ajax-Vue-Element(项目实战)
1 Ajax 1.1 Ajax介绍 1.1.1 Ajax概述 我们前端页面中的数据,如下图所示的表格中的学生信息,应该来自于后台,那么我们的后台和前端是互不影响的2个程序,那么我们前端应该如何从后台获取数据呢?因为是2个程序…...
表单中在不设置required的情况下在label前加*必填标识
参考:https://blog.csdn.net/qq_55798464/article/details/136233718 需求:在发票类型前面添加*必填标识 我最开始直接给发票类型这个表单类型添加了验证规则required:true,问题来了,这个发票类型它是有默认值的,所以我点击保存…...
Mac 使用 GVM 管理多版本 Go 环境
使用 GVM 管理多版本 Go 环境 在本文中,我们将使用 gvm(Go Version Manager)工具管理本地多个 Go 语言版本。gvm 功能类似于 Python 的 Anaconda,可以方便地切换不同版本的 Go 环境,非常适合需要多版本开发与测试的场…...
3DsMax设置中文界面
按键盘上的“Win”键,直接输入3dsmax,选择Simplified Chinese打开,之后就都是中文了...
【PyCharm】连接 Git
【PyCharm】相关链接 【PyCharm】连接 Git【PyCharm】连接Jupyter Notebook【PyCharm】快捷键使用【PyCharm】远程连接Linux服务器【PyCharm】设置为中文界面 要在 PyCharm 中连接 Git,确保您的开发环境已经安装了 Git,并且 PyCharm 能够访问它。 以下…...
使用Python和PIL裁剪图片以适应屏幕宽高比
在本教程中,我们将介绍如何使用Python和PIL(Python Imaging Library)库来裁剪图片,使其适应特定的屏幕宽高比。我们将详细解释代码的每个部分,并展示如何根据不同的裁剪模式来调整图片。 1. 安装PIL库 首先ÿ…...
Django简介与虚拟环境安装Django
目录 1.Django简介 1.1 Django 的核心特点 1.2 Django 的核心组件 1.3 Django 的应用场景 1.4 总结 2.基础环境建立 2.1 创建虚拟环境 2.1.1 使用 virtualenv 创建虚拟环境 2.1.2 使用 venv 创建虚拟环境 2.2 激活虚拟环境 2.2.1 在 Windows 上 2.2.2 在 macOS 或 …...
python实现pdf转word和excel
一、引言 在办公中,我们经常遇收到pdf文件格式,因为pdf格式文件不易修改,当我们需要编辑这些pdf文件时,经常需要开通会员或收费功能才能使用编辑功能。今天,我要和大家分享的,是如何使用python编程实现…...
Ubuntu 24.04 LTS 更改软件源
Ubuntu 24.04 LTS 修改软件源...