千家信息网

Python中怎么读取资源文件

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章给大家介绍 Python中怎么读取资源文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。我们知道,当你把一个资源文件和一个.py文件放在一起的时候,你可以直接在这个.py
千家信息网最后更新 2026年11月02日Python中怎么读取资源文件

这篇文章给大家介绍 Python中怎么读取资源文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

我们知道,当你把一个资源文件和一个.py文件放在一起的时候,你可以直接在这个.py文件中,使用文件名读取它。例如:

with open('test.txt') as f:     content = f.read() print('文件中的内容为:', content)

运行效果如下图所示:

但请注意,这里我是直接运行的read.py这个文件。如果资源文件是存放在一个包(package)里面,然后我们在外面调用这个包里面的.py文件会怎么样呢?我们试一试:

可以看到,现在Python 已经找不到这个文件了。这是因为,我们的入口程序在 ~/get_title文件夹中,而test.txt文件在~/get_title/util文件夹中。因为我们运行的是main.py,所以 Python 会在~/get_title文件夹里面寻找test.txt,自然就找不到了。

如果是引用包里面的其他模块,可以使用相对路径。例如引用同一个包里面名叫sql_util.py里面的conn对象,我们可以直接写为from .sql_util import conn。但是资源文件不能使用相对路径来读取,如下图所示:

有一个笨办法,就是获取当前正在运行的这一行代码所在的文件夹,然后拼出资源文件的完整路径。修改 read.py 文件:

新手学习,Python 教程/工具/方法/解疑+V:itz992import os  def read_file():     current_folder = os.path.dirname(__file__)     resource_path = os.path.join(current_folder, 'test.txt')     with open(resource_path) as f:         content = f.read()     print('文件中的内容为:', content)

运行效果如下图所示:

但这样写稍显麻烦。

如果你的 Python 版本不低于3.7,那么你可以使用importlib.resources来快速读取资源文件:

from importlib import resources with resources.open_text('包名', '资源路径') as f:     content = f.read()

运行效果如下图所示:

如果你读取的不是文本文件,那么你可以把resources.open_text改成resources.open_binary,从而读取二进制文件。

但需要注意的是,资源文件必须放在包的根目录。这样才能正确读取。如果资源文件在包内部的子目录中,importlib.resources是不能直接读取的。

例如我们的包为util,里面有一个文件夹叫做deep_folder,资源文件test.txt放在deep_folder中,此时,我们如果要读取这个资源文件,就必须把在deep_folder文件夹中创建一个__init__.py,把它也变成一个包。然后修改read.py的代码:

from importlib import resources from . import deep_folder   def read_file():     with resources.open_text(deep_folder, 'test.txt') as f:         content = f.read()     print('文件中的内容为:', content) 新手学习,Python 教程/工具/方法/解疑+V:itz992

把deep_folder作为一个 module 导入,然后把这个 module 作为resources.open_text的第一个参数。这样才能正确读取,如下图所示:

关于 Python中怎么读取资源文件就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

文件 资源 文件夹 运行 内容 路径 效果 代码 工具 教程 新手 方法 更多 学习 帮助 不错 一行 二进制 入口 兴趣 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技互联网公司装修 工业互联网科技新基建 智能科技公司是互联网公司吗 互联网巨头科技公司 互联网金融科技平台 深圳天众互联网科技公司 顺玮阁互联网科技 互联网科技类展会 哈尔滨新华互联网科技学院 花神(南京)互联网科技有限公司 移动互联网年度科技创新 互联网媒体平台算高科技产业 坤平互联网科技 互联网科技圈年度人物 广州千川互联网科技有限公司 35岁以上互联网科技行业 易企秀互联网科技是做什么的 上海乐五互联网科技有限公司 科技互联网经济论坛 承德科技产业互联网平台 保险科技 互联网保险 没上市的科技互联网公司 深圳齐家互联网科技 北京华百购互联网科技有限公司 互联网新科技动漫ppt素材 朱啸虎曾投资哪些互联网科技企业 互联网科技大赛获奖感言 郑州欣桑互联网科技有限公司 互联网科技机房 宁波允成互联网科技有限公司
0