Python酷库之旅-第三方库openpyxl(07)

目录

一、 openpyxl库的由来

1、背景

2、起源

3、发展

4、特点

4-1、支持.xlsx格式

4-2、读写Excel文件

4-3、操作单元格

4-4、创建和修改工作表

4-5、样式设置

4-6、图表和公式

4-7、支持数字和日期格式

二、openpyxl库的优缺点

1、优点

1-1、支持现代Excel格式

1-2、功能丰富

1-3、易于使用

1-4、与Excel兼容性

1-5、性能良好

1-6、社区支持

1-7、跨平台

2、缺点

2-1、不支持旧版格式

2-2、某些特性支持有限

2-3、内存占用

2-4、文档和示例可能不足

2-5.、依赖关系

2-6、学习曲线

三、openpyxl库的用途

1、读取Excel文件

2、写入Excel文件

3、修改Excel文件

4、自动化

5、与Excel交互

6、数据迁移和转换

7、创建模板化的报告

四、如何学好openpyxl库?

1、获取openpyxl库的属性和方法

2、获取xlwt库的帮助信息

3、用法精讲

3-31、openpyxl.worksheet.worksheet.Worksheet.set_printer_settings函数

3-31-1、语法

3-31-2、参数

3-31-3、功能

3-31-4、返回值

3-31-5、说明

3-31-6、用法

3-32、openpyxl.worksheet.worksheet.Worksheet.unmerge_cells函数

3-32-1、语法

3-32-2、参数

3-32-3、功能

3-32-4、返回值

3-32-5、说明

3-32-6、用法 

3-33、openpyxl.cell.cell.Cell.check_error函数

3-33-1、语法

3-33-2、参数

3-33-3、功能

3-33-4、返回值

3-33-5、说明

3-33-6、用法 

3-34、openpyxl.cell.cell.Cell.check_string函数

3-34-1、语法

3-34-2、参数

3-34-3、功能

3-34-4、返回值

3-34-5、说明

3-34-6、用法

3-35、openpyxl.cell.cell.Cell.offset函数

3-35-1、语法

3-35-2、参数

3-35-3、功能

3-35-4、返回值

3-35-5、说明

3-35-6、用法

五、推荐阅读

1、Python筑基之旅

2、Python函数之旅

3、Python算法之旅

4、Python魔法之旅

5、博客个人主页

一、 openpyxl库的由来

        openpyxl库的由来可以总结为以下几点:

1、背景

        在openpyxl库诞生之前,Python中缺乏一个专门用于读取和编写Office Open XML格式(如Excel 2010及更高版本的.xlsx文件)的库。

2、起源

        openpyxl库的创建是为了解决上述提到的Python在处理Excel文件时的不足,它的开发受到了PHPExcel团队的启发,因为openpyxl最初是基于PHPExcel的。

3、发展

        随着时间的推移,openpyxl逐渐发展成为一个功能强大的Python库,专门用于处理Excel文件。它支持Excel 2010及更高版本的文件格式,并提供了丰富的API,用于读取、写入、修改Excel文件。

4、特点
4-1、支持.xlsx格式

        openpyxl主要用于处理Excel 2010及更新版本的.xlsx文件。

4-2、读写Excel文件

        使用openpyxl可以读取现有的Excel文件,获取数据,修改数据,并保存到新的文件中。

4-3、操作单元格

        openpyxl允许用户按行、列或具体的单元格进行数据的读取和写入。

4-4、创建和修改工作表

        用户可以创建新的工作表,复制和删除现有的工作表,设置工作表的属性等。

4-5、样式设置

        openpyxl支持设置单元格的字体、颜色、边框等样式。

4-6、图表和公式

        用户可以通过openpyxl创建图表、添加公式等。

4-7、支持数字和日期格式

        openpyxl能够正确处理数字和日期格式,确保在Excel中显示正确的格式。

        综上所述,openpyxl库的出现填补了Python在处理Excel文件时的空白,经过不断的发展和完善,成为了一个功能丰富、易于使用的Python库。

二、openpyxl库的

        openpyxl库是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库,它基于Python,并且对于处理Excel文件提供了很多便利的功能,其主要点有:

1、优点
1-1、支持现代Excel格式

        openpyxl支持.xlsx格式的Excel文件,这是Excel 2010及更高版本使用的格式,也是目前广泛使用的格式。

1-2、功能丰富

        openpyxl提供了创建、修改和保存Excel工作簿、工作表、单元格、图表、公式、图像等功能。

1-3、易于使用

        openpyxl的API设计得相对直观,使得Python开发者能够很容易地掌握和使用。

1-4、与Excel兼容性

        openpyxl能够处理Excel文件中的很多复杂特性,如公式、样式、条件格式等,这确保了与Excel的良好兼容性。

1-5、性能良好

        在处理大型Excel文件时,openpyxl通常能够保持较好的性能。

1-6、社区支持

        openpyxl是一个开源项目,拥有活跃的社区支持和维护,这意味着开发者可以获得帮助和修复错误的快速响应。

1-7、跨平台

        openpyxl可以在不同的操作系统上运行,包括Windows、Linux和macOS等。

2、缺点
2-1、不支持旧版格式

        openpyxl不支持较旧的.xls格式(Excel 97-2003)。如果需要处理这种格式的文件,需要使用其他库如xlrd和xlwt(尽管这些库也面临一些兼容性和维护问题)。

2-2、某些特性支持有限

        虽然openpyxl支持许多Excel特性,但可能对于某些高级或特定的Excel功能支持有限或不支持。

2-3、内存占用

        在处理大型Excel文件时,openpyxl可能会占用较多的内存。这是因为openpyxl会将整个工作簿加载到内存中。

2-4、文档和示例可能不足

        尽管openpyxl的文档相对完整,但对于某些高级功能或特定用例,可能缺乏足够的示例或详细解释。

2-5.、依赖关系

        openpyxl依赖于lxml和et_xmlfile这两个Python库来处理XML和Excel文件,在某些环境中,可能需要额外安装这些依赖项。

2-6、学习曲线

        虽然openpyxl的API设计得相对直观,但对于初学者来说,可能需要一些时间来熟悉和掌握其用法。

三、openpyxl库的用途

        openpyxl是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库。它是用Python编写的,不需要Microsoft Excel,并且支持多种Excel数据类型,包括图表、图像、公式等,其主要用途有:

1、读取Excel文件

        你可以使用openpyxl来读取 Excel 文件中的数据,如单元格值、工作表名称、公式等,它支持多种数据类型,如字符串、数字、日期等。

2、写入Excel文件

        使用openpyxl,你可以创建新的Excel文件或向现有文件添加数据,你可以设置单元格的字体、颜色、边框等样式,你还可以添加图表、图像和其他复杂的Excel功能。

3、修改Excel文件

        你可以使用openpyxl来修改现有的Excel文件,如更改单元格值、添加或删除工作表等,这对于自动化数据处理和报告生成非常有用。

4、自动化

        openpyxl可以与其他Python库和框架(如 pandas、numpy、matplotlib 等)结合使用,以自动化数据处理和分析任务。你可以编写脚本来从多个数据源收集数据,将数据整合到 Excel 文件中,并执行各种数据分析任务。

5、与Excel交互

        如果你正在开发需要与Excel交互的应用程序或工具,openpyxl可以提供一个强大的API来处理Excel文件,它允许你读取和写入Excel文件,而无需依赖Microsoft Excel或其他第三方库。

6、数据迁移和转换

        使用openpyxl,你可以轻松地将数据从Excel文件迁移到其他数据库或文件格式,或将其他数据源的数据导入到Excel文件中。

7、创建模板化的报告

        你可以使用openpyxl来创建模板化的Excel报告,并在需要时填充数据,这对于需要定期生成具有一致格式和布局的报告的场景非常有用。

        总之,openpyxl是一个功能强大的库,可用于在Python中处理Excel文件,它提供了灵活的API来读取、写入、修改和自动化Excel文件的各个方面。

四、如何学好openpyxl库?

1、获取openpyxl库的属性和方法

        用print()和dir()两个函数获取openpyxl库所有属性和方法的列表

# ['DEBUG', 'DEFUSEDXML', 'LXML', 'NUMPY', 'Workbook', '__author__', '__author_email__', '__builtins__', '__cached__', 
# '__doc__', '__file__', '__license__', '__loader__', '__maintainer_email__', '__name__', '__package__', '__path__',
# '__spec__', '__url__', '__version__', '_constants', 'cell', 'chart', 'chartsheet', 'comments', 'compat', 'constants',
# 'descriptors', 'drawing', 'formatting', 'formula', 'load_workbook', 'open', 'packaging', 'pivot', 'reader', 'styles',
# 'utils', 'workbook', 'worksheet', 'writer', 'xml']
2、获取xlwt库的帮助信息

        用help()函数获取openpyxl库的帮助信息

Help on package openpyxl:NAMEopenpyxl - # Copyright (c) 2010-2024 openpyxlPACKAGE CONTENTS_constantscell (package)chart (package)chartsheet (package)comments (package)compat (package)descriptors (package)drawing (package)formatting (package)formula (package)packaging (package)pivot (package)reader (package)styles (package)utils (package)workbook (package)worksheet (package)writer (package)xml (package)SUBMODULESconstantsDATADEBUG = FalseDEFUSEDXML = FalseLXML = TrueNUMPY = True__author_email__ = 'charlie.clark@clark-consulting.eu'__license__ = 'MIT'__maintainer_email__ = 'openpyxl-users@googlegroups.com'__url__ = 'https://openpyxl.readthedocs.io'VERSION3.1.3AUTHORSee AUTHORSFILEe:\python_workspace\pythonproject\lib\site-packages\openpyxl\__init__.py
3、用法精讲
3-31、openpyxl.worksheet.worksheet.Worksheet.set_printer_settings函数
3-31-1、语法
set_printer_settings(self, paper_size, orientation)Set printer settings
3-31-2、参数

3-31-2-1、self(必须)一个对实例对象本身的引用,在类的所有方法中都会自动传递。

3-31-2-2、paper_size(可选)指定打印时使用的纸张大小。

3-31-2-3、orientation(可选)设置打印方向,指定打印时是纵向还是横向。

3-31-3、功能

         设置工作表的打印配置,包括纸张大小、方向、页边距等。

3-31-4、返回值

        没有返回值,它通过直接修改工作表对象的属性来应用打印设置。

3-31-5、说明

        无

3-31-6、用法
# 31、openpyxl.worksheet.worksheet.Worksheet.set_printer_settings函数
from openpyxl import Workbook
from openpyxl.worksheet.page import PageSetup
# 创建一个新的工作簿和工作表
wb = Workbook()
ws = wb.active
# 设置打印设置
ws.set_printer_settings(paper_size=PageSetup.PAPERSIZE_A4, orientation=PageSetup.ORIENTATION_LANDSCAPE)
# 保存工作簿
wb.save("example.xlsx")
3-32、openpyxl.worksheet.worksheet.Worksheet.unmerge_cells函数
3-32-1、语法
unmerge_cells(self, range_string=None, start_row=None, start_column=None, end_row=None, end_column=None)Remove merge on a cell range.  Range is a cell range (e.g. A1:E1)
3-32-2、参数

3-32-2-1、self(必须)一个对实例对象本身的引用,在类的所有方法中都会自动传递。

3-32-2-2、range_string(可选)一个字符串,表示要取消合并的单元格范围。例如,"A1:D1" 表示从A1单元格到D1单元格的范围。

3-32-2-3、start_row(可选)一个整数(默认值为None),表示要取消合并的起始行索引。

3-32-2-4、start_column(可选)一个整数(默认值为None),表示要取消合并的起始列索引。

3-32-2-5、end_row(可选)一个整数(默认值为None),表示要取消合并的结束行索引。

3-32-2-6、end_column(可选)一个整数(默认值为None),表示要取消合并的结束列索引。

3-32-3、功能

        用于取消工作表中的合并单元格,该函数通过指定合并区域的范围,将该范围内的所有单元格恢复为独立的单元格。

3-32-4、返回值

        没有返回值。它直接对工作表进行操作,取消指定范围内的合并单元格,而不会返回任何数据。

3-32-5、说明

        无

3-32-6、用法 
# 32、openpyxl.worksheet.worksheet.Worksheet.unmerge_cells函数
from openpyxl import Workbook
# 创建一个新的工作簿和工作表
wb = Workbook()
ws = wb.active
# 合并单元格
ws.merge_cells('A1:D1')
# 取消合并单元格
ws.unmerge_cells('A1:D1')  # 没有返回值
# 保存工作簿
wb.save("example.xlsx")
3-33、openpyxl.cell.cell.Cell.check_error函数
3-33-1、语法
check_error(self, value)Tries to convert Error" else N/A
3-33-2、参数

3-33-2-1、self(必须)一个对实例对象本身的引用,在类的所有方法中都会自动传递。

3-33-2-2、value(必须)一个字符串或数值,表示需要检查的值。

3-33-3、功能

        用于检测单元格中的内容是否为错误值。

3-33-4、返回值

        返回一个布尔值。如果单元格中的值是错误值,则返回True;反之,则返回False。

3-33-5、说明

3-33-5-1、该方法仅检查传入的值是否为标准的Excel错误值,并不涉及单元格中的公式或其他内容。

3-33-5-2、检查的错误值是固定的,主要包括#DIV/0!、#N/A#NAME?#NULL!#NUM!#REF!#VALUE!等。

3-33-6、用法 
# 33、openpyxl.cell.cell.Cell.check_error函数
from openpyxl import Workbook
# 创建一个新的工作簿和工作表
wb = Workbook()
ws = wb.active
# 设置一些单元格值,包括一个错误值
ws['A1'] = 5
ws['A2'] = 0
ws['A3'] = '=A1/A2'  # 这是一个错误值,会导致 #DIV/0!
# 检查单元格A3是否有错误
cell = ws['A3']
has_error = cell.check_error("#DIV/0!")
print(f"Cell A3 has error: {has_error}") # 输出:Cell A3 has error: #DIV/0!
# 保存工作簿
wb.save("example.xlsx")
3-34、openpyxl.cell.cell.Cell.check_string函数
3-34-1、语法
check_string(self, value)Check string coding, length, and line break character
3-34-2、参数

3-34-2-1、self(必须)一个对实例对象本身的引用,在类的所有方法中都会自动传递。

3-34-2-2、value(必须)一个字符串,表示需要检查的值。

3-34-3、功能

        用于检查传入的值是否为一个有效的字符串。

3-34-4、返回值

3-34-4-1、如果value是一个有效的字符串,此方法不会返回任何内容。

3-34-4-2、如果value不是一个有效的字符串,此方法会引发TypeError或ValueError异常。

3-34-5、说明

3-34-5-1、此方法仅检查值是否为字符串,并不检查字符串的长度或内容是否符合其他特定要求。

3-34-5-2、如果传入的值不是字符串或包含非法字符,该方法会引发异常,而不是返回一个布尔值。

3-34-6、用法
# 34、openpyxl.cell.cell.Cell.check_string函数
from openpyxl import Workbook
from openpyxl.cell import Cell
# 创建一个新的工作簿和工作表
wb = Workbook()
ws = wb.active
# 创建一个单元格对象
cell = Cell(ws, 'A1')
# 一个有效的字符串值
value = "Hello, OpenPyxl!"
# 检查值是否为有效的字符串
try:cell.check_string(value)print(f"The value '{value}' is a valid string.")
except (TypeError, ValueError) as e:print(f"The value '{value}' is not a valid string: {e}")
# 一个无效的值(例如,包含非法字符或不是字符串)
invalid_value = 12345
try:cell.check_string(invalid_value)print(f"The value '{invalid_value}' is a valid string.")
except (TypeError, ValueError) as e:print(f"The value '{invalid_value}' is not a valid string: {e}")
# 保存工作簿
wb.save("example.xlsx")
# The value 'Hello, OpenPyxl!' is a valid string.
# The value '12345' is not a valid string: decoding to str: need a bytes-like object, int found
3-35、openpyxl.cell.cell.Cell.offset函数
3-35-1、语法
offset(self, row=0, column=0)Returns a cell location relative to this cell.:param row: number of rows to offset:type row: int:param column: number of columns to offset:type column: int:rtype: :class:`openpyxl.cell.Cell`
3-35-2、参数

3-35-2-1、self(必须)一个对实例对象本身的引用,在类的所有方法中都会自动传递。

3-35-2-2、row(可选)一个整数类型(默认为 0,即不进行行偏移),表示指定相对于当前单元格的行偏移量。正值表示向下偏移,负值表示向上偏移。

3-35-2-3、 column(可选)一个整数类型(默认为 0,即不进行列偏移),表示指定相对于当前单元格的列偏移量。正值表示向右偏移,负值表示向左偏移。

3-35-3、功能

        用于在 Excel 工作表中相对于当前单元格的位置偏移。

3-35-4、返回值

        返回一个新的Cell对象,表示相对于当前单元格位置的偏移位置的单元格。

3-35-5、说明

        无

3-35-6、用法
# 35、openpyxl.cell.cell.Cell.offset函数
from openpyxl import Workbook
# 创建一个新的工作簿和工作表
wb = Workbook()
ws = wb.active
# 在A1单元格中写入数据
cell = ws['A1']
cell.value = "Hello"
# 偏移函数:获取当前单元格偏移1行2列的位置
offset_cell = cell.offset(row=1, column=2)
# 在偏移位置的单元格中写入数据
offset_cell.value = "World"
# 保存工作簿
wb.save("example.xlsx")

五、推荐阅读

1、Python筑基之旅
2、Python函数之旅
3、Python算法之旅
4、Python魔法之旅
5、博客个人主页

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/33012.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

十大经典排序算法——选择排序和冒泡排序

一、选择排序 1.基本思想 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据全部排完。 2.直接选择排序 (1) 在元素集合arr[i] — arr[n - 1]中选择关键妈的最大(小…

高考十字路口:24年考生如何权衡专业与学校的抉择?

文章目录 每日一句正能量前言专业解析理工科专业商科专业人文社科专业艺术与设计专业个人经验与思考过程结论 名校效应分析名校声誉与品牌效应资源获取学术氛围就业优势个人发展结论 好专业和好学校的权衡个人职业目标行业需求教育质量资源和机会学术氛围就业优势经济和地理位置…

嵌入式学习——数据结构(单向无头链表)——day46

1. 数据结构 1.1 定义 数据结构是指计算机中数据的组织、管理和存储方式。它不仅包括数据元素的存储方式,还包括数据元素之间的关系,以及对数据进行操作的方法和算法。数据结构的选择和设计直接影响算法的效率和程序的性能,是计算机科学与编…

说一说三大运营商的流量类型,看完就知道该怎么选运营商了!

说一说三大运营商的流量类型,看完就知道该怎么选运营商了?目前三大运营商的流量类型大致分为通用流量和定向流量,比如: 中国电信:通用流量定向流量 电信推出的套餐通常由通用流量定向流量所组成,通用流量…

【Python时序预测系列】基于LSTM实现单变量时序序列多步预测(案例+源码)

这是我的第307篇原创文章。 一、引言 单站点单变量输入单变量输出多步预测问题----基于LSTM实现。 单输入就是输入1个特征变量 单输出就是预测出1个标签的结果 多步就是利用过去N天预测未来M天的结果 二、实现过程 2.1 读取数据集 # 读取数据集 data pd.read_csv(data.c…

HTML5文旅文化旅游网站模板源码

文章目录 1.设计来源文旅宣传1.1 登录界面演示1.2 注册界面演示1.3 首页界面演示1.4 文旅之行界面演示1.5 文旅之行文章内容界面演示1.6 关于我们界面演示1.7 文旅博客界面演示1.8 文旅博客文章内容界面演示1.9 联系我们界面演示 2.效果和源码2.1 动态效果2.2 源代码2.3 源码目…

笔记本电脑屏幕模糊?6招恢复屏幕清晰!

在数字化时代的浪潮中,笔记本电脑已成为我们生活、学习和工作中不可或缺的一部分。然而,当那曾经清晰明亮的屏幕逐渐变得模糊不清时,无疑给我们的使用体验蒙上了一层阴影。屏幕模糊不仅影响视觉舒适度,更可能对我们的工作效率和眼…

【AI大模型】驱动的未来:穿戴设备如何革新血液、皮肤检测与营养健康管理

文章目录 1. 引言2. 现状与挑战3. AI大模型与穿戴设备概述4. 数据采集与预处理4.1 数据集成与增强4.2 数据清洗与异常检测 5. 模型架构与训练5.1 高级模型架构5.2 模型训练与调优 6. 个性化营养建议系统6.1 营养建议生成优化6.2 用户反馈与系统优化 7. 关键血液成分与健康状况评…

WIN Semis揭幕耐湿砷化镓pHEMT技术

​犹如为无线通信领域注入了一股清新的活力。这项技术不仅支持E频带,更在晶圆级上筑起了一道坚固的防潮屏障,满足了对严苛环境条件的bHAST挑战。今日,WIN半导体公司正式公布了0.1m pHEMT技术PP10-29的测试版,预示着通信领域的新篇…

ansible 任务块以及循环

任务块 可以通过block关键字,将多个任务组合到一起可以将整个block任务组,一起控制是否要执行 # 如果webservers组中的主机系统发行版是Rocky,则安装并启动nginx [rootpubserver ansible]# vim block1.yml --- - name: block tasks hosts…

ROS2从入门到精通4-4:局部控制插件开发案例(以PID算法为例)

目录 0 专栏介绍1 控制插件编写模板1.1 构造控制插件类1.2 注册并导出插件1.3 编译与使用插件 2 基于PID的路径跟踪原理3 控制插件开发案例(PID算法)常见问题 0 专栏介绍 本专栏旨在通过对ROS2的系统学习,掌握ROS2底层基本分布式原理,并具有机器人建模和…

Go 如何使用指针灵活操作内存

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

爬虫笔记14——爬取网页数据写入MongoDB数据库,以爱奇艺为例

下载MongoDB数据库 首先,需要下载MongoDB数据库,下载的话比较简单,直接去官网找到想要的版本下载即可,具体安装过程可以看这里。 pycharm下载pymongo库 pip install pymongo然后在在python程序中我们可以这样连接MongoDB数据库…

IPD推行成功的核心要素(十三)IPD产品开发流程让企业正确地做事情

一个公司能否成功,取决于它适应市场需求和竞争环境变化的速度。公司需要不断创新,以符合客户期望并保持相关性。这意味着需要更快速地推出新产品和改进产品。简化的产品开发流程能够支持快速开发周期,帮助公司领先于市场,用优秀的…

植物大战僵尸杂交版2.1版本终于来啦!游戏完全免费

在这个喧嚣的城市里,我找到了一片神奇的绿色世界——植物大战僵尸杂交版。它不仅是一款游戏,更像是一扇打开自然奥秘的窗户,让我重新认识了植物和自然的力量。 植物大战僵尸杂交版最新绿色版下载链接: https://pan.quark.cn/s/d6…

MySQL的综合运用

MySQL版的葵花宝典,欲练此功,挥刀自。。。呃,,,说错了,是先创建两个表,分别是location表和store_info表 示例表为location表和store_info表,如下图所示: 操作一&#xf…

【C++高阶】掌握AVL树:构建与维护平衡二叉搜索树的艺术

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C “ 登神长阶 ” 🤡往期回顾🤡:STL-> map与set 🌹🌹期待您的关注 🌹🌹 ❀AVL树 📒1. AVL树…

JavaSE (Java基础):运算符

3 运算符 3.1 二元运算符 为什么下面这段代码中最后的语句中b元素要加(double)呢? 因为要计算10/40的话,他们都是int类型的在计算机中会取整,而计算机取整一般都是直接舍去小数点后面的数字,那么就会返回0&…

VScode基本使用

VScode下载安装: Visual Studio Code - Code Editing. Redefined MinGW的下载安装: MinGW-w64 - for 32 and 64 bit Windows - Browse Files at SourceForge.net x86是64位处理器架构,i686是32为处理器架构。 POSIX和Win32是两种不同的操…

vscode pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

在vscode中控制台运行python文件出现:无法将"pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。 使用vscode开发python,需要安装python开发扩展: 本文已经安装,我们需要找的是python安装所在目录,本文…