案例学习引自黑马程序员,基于异常、模块、包的知识,自定义一个工具包。

创建一个自定义包,名称为:my_utils (我的工具) 在包内提供2个模块:
1、str_util.py (字符串相关工具)内含:
函数:str_reverse(s),接受传入字符串,将字符串反转返回
函数:substr(s, x, y),按照下标x和y,对字符串进行切片
2、file_util.py(文件处理相关工具)内含:
函数:print_file_info(file_name),接收传入文件的路径,打印文件的全部内容,如文件不存在则捕获异常,输出提示信息,通过finally关闭文件对象
函数:append_to_file(file_name, data),接收文件路径以及传入数据,将数据追加写入到文件中

打开pycharm,在右侧右键新建“Python 软件包”,取名my_utils
2023-09-25T11:52:23.png

再新建2个python文件(模块),一个str_util.py (字符串相关工具),一个file_util.py(文件处理相关工具)
2023-09-25T11:53:59.png
2023-09-25T12:29:00.png

str_util.py里敲如下代码:

"""
字符串相关的工具模块
"""


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.py里敲如下代码:

"""
文件处理相关的工具模块
"""


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", "传智教育")

最后我们新建一个test.py的文件来测试调用下自定义工具包:

"""
演示异常、模块、包的综合案例练习
"""
# 创建my_utils 包, 在包内创建:str_util.py 和 file_util.py 2个模块,并提供相应的函数

import my_utils.str_util
from my_utils import file_util

print(my_utils.str_util.str_reverse("DarkSheep个人小站"))
print(my_utils.str_util.substr("DarkSheep", 0, 4))


file_util.append_to_file("D:/norpg_com.txt", "DarkSheep个人小站")
file_util.print_file_info("D:/darksheep_norpg_com.txt")

运行后控制台显示结果如下:

站小人个peehSkraD
Dark
程序出现异常了,原因是:[Errno 2] No such file or directory: 'D:/darksheep_norpg_com.txt'