Python 自定义包与模块开发实战:字符串与文件处理工具封装

Evan
Evan
发布时间:2026-10-16| 7人浏览过
原创

本文详细演示如何在 PyCharm 中创建名为 my_utils 的自定义 Python 包,并封装 str_util 和 file_util 两个核心模块。内容涵盖字符串反转与切片函数的编写,以及文件信息的读取、异常处理、追加写入等文件操作函数的实现。通过完整的代码示例与导入演示,帮助开发者掌握 Python 模块化开发的标准流程与最佳实践。

一、实例:自定义包

本例旨在构建一个名为 my_utils 的自定义包,该包名称意为“我的工具”,内部将包含两个独立的模块文件。

1. str_util.py(字符串相关工具模块,包含以下函数)

  • 函数 str_reverse(s):接收一个字符串参数 s,执行反转操作并返回结果。
  • 函数 substr(s, x, y):接收字符串 s 及两个整数下标 x 和 y,根据指定范围对字符串进行切片处理。

2. file_util.py(文件处理相关工具模块,包含以下函数)

  • 函数 print_file_info(file_name):接收文件路径参数,尝试读取并打印文件全部内容。若文件不存在则捕获异常并输出提示信息,同时确保在 finally 代码块中关闭文件对象以释放资源。
  • 函数 append_to_file(file_name, data):接收文件路径及待写入数据,将数据追加至文件末尾。

二、详细实现步骤

以下操作基于 PyCharm 集成开发环境进行演示。

1. 新建 my_utils 包

2. 在包内新建 str_util.py 和 file_util.py 两个 Python 源文件

3. str_util.py 模块的具体代码实现如下

def str_reverse(s):
    """
    功能:将字符串反转
    s:将被反转的字符串
    return:反转后的字符串
    """
    return s[::-1]
 
def substr(s,x,y):
    """
    功能是按照给定的下标完成给定字符串的切片
    s:即将切片的字符串
    x:切片的开始下标
    y:切片的结束下标
    return:切片完成后的字符串
    """
    return s[x:y]
 
if __name__ == '__main__':
    print(str_reverse("好好学习!"))
    print(substr("床前明月光,疑是地上霜。",2,6))

运行演示

4. file_util.py 模块的具体代码实现如下

def print_file_info(file_name):
    f=None
    try:
        f=open(file_name,"r",encoding="utf-8")
        count=f.read()
        print("文件内容有:")
        print(count)
    except Exception as e:
        print("文件出现了问题,程序无法运行")
    finally:
        if f:#如果变量是none,表示false,如果有任何内容就是true
            f.close()

def append_to_file(file_name,data):
    f=open(file_name,"a",encoding="utf-8")
    f.write(data)
    f.write("\n")
    f.close()#close自带flush功能,并且文件不存在时会自动生成,所以不需要判断文件是否存在

if __name__ == '__main__':
    append_to_file("D:\game.txt","weasdfad_sdf")
    print_file_info("D:\game.txt")                       

运行演示

5. 在主程序中导入并使用 my_utils 包

import my_utils.str_util
from my_utils import file_util
 
print(my_utils.str_util.str_reverse("abcdefg!"))
print(my_utils.str_util.substr("sdf_123",0,4))
print("-----------------")
print(file_util.append_to_file("D:/game.txt","345_jhg"))
print(file_util.print_file_info("D:/game.txt"))

导入与调用演示

至此,关于 Python 实现自定义包的实例详解已介绍完毕。如需了解更多 Python 自定义包相关内容,建议搜索本站过往文章或继续阅读后续相关教程,感谢支持。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。