快捷搜索:

基于Python正确读取资源文件

基于Python正确读取资源文件

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

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

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

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

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

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

  本篇文章给大家带来的内容是关于Python如何筛选序列中的元素 ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。1、需求序列中含有一些数据,我们需要提取其中的值或根据某些标准对序列做删减,2、解决方案要筛选序列中的数据,通常最简单的方法是使用列表推导式。例如:my...查看详情

  对于英文文本分句比较简单,只要根据终结符.划分就好,中文文本分句看似很简单,但是实现时会遇到很多麻烦,尤其是处理社交媒体数据时,会遇到文本格式不规范等问题。下面代码针对一段一段的短文本组成了文档分句import redef cut_sent(infile, outfile):...查看详情

  前言这篇文章主要介绍了linux中如何使用python3获取ip地址,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下。一、不带参数#!/usr/bin/python # -*- coding: UTF-8 -*- import o...查看详情

  Python 处理 JSON 数据时,dumps 函数是经常用到的,当 JSON 数据中有特殊类型时,往往是比较头疼的,因为经常会报这样一个错误。自定义编码类#!/usr/bin/env python# -*- coding:utf-8 -*-# Author: wxnacy(w...查看详情

  如下所示:list=[1,2,3,4,5,6,7,8,9,0,11,0,13,14,15,16,17,18,19,20]#把list分为长度为5的4段for j in range(0,len(list),5): matrix.append(list[j:j+5])matrix=...查看详情

  在pycharm使用过程中,对于每次新建的python文件的时候,关于代码编写者的一些个人信息快捷填写,使用模板的方式比较方便。方法如下:1.打开pycharm,选择File-Settings2.Editor –> File and Code Templates –>...查看详情

  最近由于开发业务量陡增,脚本一个接一个内部网站asp源码,一天好几个,为了便于后期的维护和调优,我习惯在前面加一些跟脚本相关的信息,如业务需求、开发思路、实现过程、开发周期、时间等等,因此做一个模版是必不可少的了,方法如下:尽量做成世上最详细(没有之一)1、左上角File2、Settings3、E...查看详情

  最近学习python,刚好学到了gui(tkinter)相关的知识,顺便一提,我学python用的是《programming python 4edition》这本书,在这里小小的推荐一下,感觉还不错。昨天在做一个简单的文本编辑器的时候,想要在窗口启动的时候就默认是最大化的,但是不...查看详情

  今天分享一下django的账号密码登陆,前端发送ajax请求,将用户名和密码信息发送到后端处理,后端将前端发送过来的数据跟数据库进行过滤匹配,成功就跳转指定页面,否则就把相对应的错误信息返回,同时增加一个小功能,在规定时间内超过规定的登录次数,就锁住无法登陆,等下一个时间段再允许...查看详情

  最近几天了解了一下人脸识别,应用场景可以是图片标注,商品图和广告图中有没有模特,有几个模特,模特的性别,年龄,颜值,表情等数据的挖掘。基础的识别用dlib来实现,dlib是一个机器学习的包,主要用C++写的,但是也有Python版本。其中最流行的一个功能是Facial Landm...查看详情

您可能还会对下面的文章感兴趣: