| 从物理上看,包就是一个文件夹,在该文件夹下包含了一个 __init__.py 文件,该文件夹可用于包含多个模块文件 |
| 从逻辑上看,包的本质依然是模块 |
| 作用:当我们的模块文件越来越多时,包可以帮助我们管理这些模块, 包的作用就是包含多个模块,但包的本质依然是模块 |

-
新建包

-
导入包方式1

| from my_package import my_module1 |
| from my_package import my_module2 |
| my_module1.info_print1() |
| my_module2.info_print2() |
| from my_package.my_module1 import info_print1 |
| from my_package.my_module2 import info_print2 |
| info_print1() |
| info_print2() |
| |
| 在Python程序的生态中,有许多非常多的第三方包(非Python官方),可以极大的帮助我们提高开发效率,如: |
| 科学计算中常用的:numpy包 |
| 数据分析中常用的:pandas包 |
| 大数据计算中常用的:pyspark、apache-flink包 |
| 图形可视化常用的:matplotlib、pyecharts |
| 人工智能常用的:tensorflow |
| |
| 这些第三方的包,极大的丰富了Python的生态,提高了开发效率。 |
| 但是由于是第三方,所以Python没有内置,所以我们需要安装它们才可以导入使用 |
| 使用Python内置的pip程序 |
| |
| pip install 包名称 |
| pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名称 |



| 创建一个自定义包,名称为:my_utils (我的工具) |
| 在包内提供2个模块 |
| str_util.py (字符串相关工具,内含:) |
| 函数:str_reverse(s),接受传入字符串,将字符串反转返回 |
| 函数:substr(s, x, y),按照下标x和y,对字符串进行切片 |
| file_util.py(文件处理相关工具,内含:) |
| 函数:print_file_info(file_name),接收传入文件的路径,打印文件的全部内容,如文件不存在则捕获异常,输出提示信息, |
| 通过finally关闭文件对象 |
| 函数:append_to_file(file_name, data),接收文件路径以及传入数据,将数据追加写入到文件中 |
| |
| def str_reverse(s): |
| """ |
| 功能是将字符串完成反转 |
| :param s: 将被反转的字符串 |
| :return: 反转后的字符串 |
| """ |
| return s[::-1] |
| |
| def substr(s, x, y): |
| """ |
| 功能是按照给定的下标完成给定字符串的切片 |
| :param s: 即将被切片的字符串 |
| :param x: 切片的开始下标 |
| :param y: 切片的结束下标 |
| :return: 切片完成后的字符串 |
| """ |
| return s[x:y] |
| |
| if __name__ == '__main__': |
| print(str_reverse("黑马程序员")) |
| print(substr("黑马程序员", 1, 3)) |
| |
| |
| |
| |
| def print_file_info(file_name): |
| """ |
| 功能是:将给定路径的文件内容输出到控制台中 |
| :param file_name: 即将读取的文件路径 |
| :return: None |
| """ |
| f = None |
| try: |
| f = open(file_name, "r", encoding="UTF-8") |
| content = f.read() |
| print("文件的全部内容如下:") |
| print(content) |
| except Exception as e: |
| print(f"程序出现异常了,原因是:{e}") |
| finally: |
| if f: |
| f.close() |
| |
| def append_to_file(file_name, data): |
| """ |
| 功能:将指定的数据追加到指定的文件中 |
| :param file_name: 指定的文件的路径 |
| :param data: 指定的数据 |
| :return: None |
| """ |
| f = open(file_name, "a", encoding="UTF-8") |
| f.write(data) |
| f.write("\n") |
| f.close() |
| |
| if __name__ == '__main__': |
| print_file_info("D:/bill.txtxxx") |
| append_to_file("D:/test_append.txt", "传智教育") |
| |
| |
| |
| |
| import my_utils.str_util |
| from my_utils import file_util |
| |
| print(my_utils.str_util.str_reverse("黑马程序员")) |
| print(my_utils.str_util.substr("itheima", 0, 4)) |
| |
| file_util.append_to_file("D:/test_append.txt", "itheima") |
| file_util.print_file_info("D:/test_append.txt") |
| pyecharts(数据可视化) |
| pymysql(操作mysql) |
| xlrd(操作excel) |
| openpyxl(操作excel) |
| paramiko(ssh远程操作) |
| cryptography(加解密) |
| PyNaCl(加解密) |
| pyinstaller(制作可执行文件) |
| pillow(图片处理) |
| django(web开发) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术