展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

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

  • 新建包

  • 导入包方式1

import 包名.模块名
包名.模块名.目标

  • 方式2
from my_package import my_module1
from my_package import my_module2
my_module1.info_print1()
my_module2.info_print2()
  • 方式3
from my_package.my_module1 import info_print1
from my_package.my_module2 import info_print2
info_print1()
info_print2()
  • 方式4:在__init__.py文件中添加__all__ = [],控制允许导入的模块列表

  • 安装第3方包

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

  • 应用实例
创建一个自定义包,名称为: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),接收文件路径以及传入数据,将数据追加写入到文件中
  • 代码实现
# str_util
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))
# -----------------------------------------
# file_util
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: # 如果变量是None,表示False,如果有任何内容,就是True
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")
  • 常用第3方包
pyecharts(数据可视化)
pymysql(操作mysql)
xlrd(操作excel)
openpyxl(操作excel)
paramiko(ssh远程操作)
cryptography(加解密)
PyNaCl(加解密)
pyinstaller(制作可执行文件)
pillow(图片处理)
django(web开发)
  • 查看已安装的库
win + r,cmd
pip list
posted @   DogLeftover  阅读(256)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示