但这样写稍显麻烦。

如果你的 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 资源文件_如何用 Python 正确读取资源文件相关推荐

  1. python怎么读_如何用Python读写文件

    前面我们已经介绍了很多Python相关的基础知识,大家是不是对Python已经有了进一步认识了呢?作为人工智能时代的热门编程语言,开始接触并学习Python的孩子越来越多,家长们都不想让自己的孩子落于 ...

  2. python怎样打开加密的文件_如何用Python 加密文件

    生活中,有时候我们需要对一些重要的文件进行加密,Python 提供了诸如 hashlib,base64 等便于使用的加密库. 但对于日常学习而言,我们可以借助异或操作,实现一个简单的文件加密程序,从而 ...

  3. python 英语分词_如何用Python做中文分词?

    打算绘制中文词云图?那你得先学会如何做中文文本分词.跟着我们的教程,一步步用Python来动手实践吧. 需求 在<如何用Python做词云>一文中,我们介绍了英文文本的词云制作方法.大家玩 ...

  4. python预测房价走势_如何用 Python 预测房价走势?

    原标题:如何用 Python 预测房价走势? 买房应该是大多数都会要面临的一个选择,当前经济和政策背景下,未来房价会涨还是跌?这是很多人都关心的一个话题.今天分享的这篇文章,以波士顿的房地产市场为例, ...

  5. python旅游推荐系统_如何用Python搭建一个简单的推荐系统?

    推荐系统的相关知识我们已在前文中提到,在这篇文章中,我们会介绍如何用Python来搭建一个简单的推荐系统. 本文使用的数据集是MovieLens数据集,该数据集由明尼苏达大学的Grouplens研究小 ...

  6. python编写函数_如何用Python编写自己喜欢的R函数

    python编写函数 数据科学和机器学习的伟大现代斗争之一是" Python vs. R". 毫无疑问,近年来两者都已经取得了巨大的发展,成为数据科学,预测分析和机器学习的顶级编程 ...

  7. python计算卡方分布_如何用Python计算上证指数的涨跌幅分布情况?

    话不多说先上代码,这个分布情况指的就是分析一下涨跌幅在每个百分比阶段各有多少天,例如0%-1%有多少天,1%-2%有多少天: import os#缓存数据class SecurityData: cou ...

  8. python小助手_如何用python写个人专属群聊提醒小助手?

    前言 大家还记得教会父母玩微信是什么时候吗?父母学会后,我们的生活就发生了「质」的变化,父母也许会吐槽你的微信头像不好,要你换一个头像. 最近 pk哥 又被母后大人吐槽了,原因是亲戚微信群里某个亲戚生 ...

  9. aes加密算法python语言实现_如何用Python实现AES CCM的加解密

    1.简介 AES CCM被广泛应用于现代通讯中,在学习过程中需要验证数据的加解密的结果,那么有个方便修改的Python脚本工具就是一个迫切的需求. 2. 实施 我们下面介绍如何实现AES CCM的Py ...

最新文章

  1. 压缩SQL数据库日志-收缩SQL数据库日志-备份SQL数据库日志-删除SQL数据库日志
  2. hdu 1228 A+B (字符串处理) 水
  3. Vs 2015 批量 删除注释
  4. spring java code配置_Spring-09-使用Java的方式配置Spring
  5. 差分隐私中随机响应的抛硬币问题(LDP)
  6. CentOS下配置JDK1.6+TOMCAT6
  7. G2.9 std_alloc
  8. 8 -- 深入使用Spring -- 6...2 Spring支持的事务策略
  9. Xcode9使用新体验
  10. nginx做下载文件服务器
  11. ace自定义在线编辑器方法及提示
  12. 计算机多媒体技术的主要特征是什么,计算机多媒体技术主要特征
  13. BGP 路由聚合实验
  14. SPSS进行问卷数据的效度分析及结果解读(问卷数据统计分析第3步(转载)
  15. Git git update-index --assume-unchanged
  16. iOS TouchID和FaceID登录验证 简单使用
  17. 滚珠螺杆螺母的安装教程来了
  18. 在OpenCV里实现伽马变换
  19. 计算机技术应用社会实践课题,PLC自动化专业社会实践报告.docx
  20. 基于深度表征学习特征的抗癌肽预测

热门文章

  1. Excel 用vba自动汇总实例
  2. 【IDEA】- IDEA导入 mysql驱动包的时候 编译时可以找到驱动包 , 但是运行时无法找到
  3. 【最优化】C++实现0.618法、Fibonacci法、二分法
  4. lopatkin俄大神精简中文系统Windows 10 Pro 18362.145 19H1 Release x86-x64 ZH-CN DREY
  5. 禁止Mac Safari下载zip文件后自动解压缩
  6. 解决Safari浏览器下载文件文件名称乱码的问题
  7. 按enter键,快速切换到下一个输入框进行输入
  8. 尚硅谷前端项目开发笔记
  9. Qt程序连接Access数据库,出现“[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 QODBC3: Unable to connect“错误的解决办法
  10. Ubuntu系统安装CUDA或NVIDIA驱动后出现循环登录问题的Solution (附:building kernel modules error)