python导入本地当前目录下的文件和父目录下的文件

今天我想要导入本地当前目录下的文件和父目录下的文件,网上查了很多教程,但还都是报错,最后几经尝试,终于成功解决了这一问题,在这里详细记录一下过程,同时也希望能够对大家有所帮助~~~:)

导入当前目录下的文件

需求:在DataManager.py中导入tokenizer包下的文件(如下图目录结构所示)

分析可知,这显然属于是导入当前目录下的文件,

但是,使用import直接导入(具体如下一行代码所示)就是会报错:找不到模块tokenizer。

from tokenizer.LMTextTokenizer import LMTextTokenizer

先说结果,最后成功的办法:

将上一行代码修改成:

from .tokenizer.LMTextTokenizer import LMTextTokenizer

对,你没有看错,就是在tokenizer的前面加一个点,无敌简单的方法,或许有时候简单的反而更有效【笑哭】【笑哭】【笑哭】

然后解释下原因:

“.”表示当前目录,所以就是在当前目录下的tokenizer包下的LMTextTokenizer中导入LMTextTokenizer。


吐槽一下:

之前尝试过把路径“./tokenizer”放到os.path中,如果目录存在则导入,否则给出提示信息。这个方法一开始修改之后确实可以成功导入,但是我之后再改完别的import语句后运行就又导入不了了,所以还是不行。

至于其它试过的办法,压根就没成功过一次,根本不值一提,这里就不再赘述了。


导入父目录下的文件

需求:在DataManager.py中导入utils包下的文件

分析可知,这显然是导入父目录下的文件,

但是用from...import导入就是会报错:模块找不到

from utils.IOOption import open_file, write_file

先说结果,最后成功的办法:

将上一行代码修改成:

import os
import sys
sys.path.insert(0,os.path.dirname(os.getcwd()))

from utils.IOOption import open_file, write_file

就可以成功导入了。

原因解释:

首先利用sys.path.insert将当前目录插入到pycharm查找模块的路径中的第一条,这样就可以顺利找到utils下的模块了。


总之,bug是千奇百怪,防不胜防,但好在最终解决了【嘻嘻】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/518773.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python人工智能应用---中文分词词频统计

目录 1.中文分词 2.循环分别处理列表 (1)分析 (2)代码解决 3.词袋模型的构建 (1)分析需求 (2)处理分析 1.先实现字符串的连接 2.字符串放到新的列表里面 4.提取高频词语 &…

vivado 向 SVF 目标添加器件

向 SVF 目标添加器件 创建 SVF 目标后 , 可向其中添加器件以定义 SVF JTAG 器件链配置。 SVF JTAG 器件链配置应与目标硬件链相匹配 , 以 确保能正确执行 SVF 文件。 使用 Vivado IDE 单击“ ”按钮以向 SVF 链添加赛灵思器件或非赛灵思器件。…

程序·人生

诡异之极 2024.03.12 清新环境(股票代码002573)委托卖出 20000股,委托价4.58,当日最高价4.57 2024.03.11 清新环境(股票代码002573)委托卖出 20000股,委托价4.55,当日最高价4.54 …

【Python系列】读取 Excel 第一列数据并赋值到指定列

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

windwos安全加固

一、账号管理 按用户类型分配账号 目的:根据系统要求,设定不同账户和组,管理员、数据库 sa、审计用户、来宾用户等 实施方法: 打开本地用户和计算机管理器 ​ 1.打开运行,输入lusrmgr.msc 2.根据用户要求将账户加入…

鸡尾酒排序解读

在数据处理的海洋中,排序算法无疑是引领我们探索数据规律的灯塔。今天,我们要探讨的是一种有趣且独特的排序算法——鸡尾酒排序。鸡尾酒排序,也被称为定向冒泡排序、双冒泡排序或搅拌排序,是冒泡排序的一种变体,它通过…

[计算机效率] 磁盘空间分析工具:FolderSize

3.15 磁盘空间分析工具:FolderSize FolderSize是一款磁盘管理工具,提供预约交互式磁盘空间分析体验,可以可视化观察磁盘空间使用情况。程序可以帮助用户快速查看并统计硬盘中的各个分区所占用的空间大小以及文件夹和文件的大小,并…

CCleaner如何还原系统 CCleaner怎么恢复注册表 ccleaner官方下载

CCleaner是一款电脑清理软件,其中的注册表清理功能是该软件很重要的功能。注册表作为电脑的重要文件,不可以随便清理,而CCleaner可以帮我们安全,快速地清除注册表。同时,CCleaner还有还原系统的功能。下面将为大家介绍…

Windows与Linux路径分隔符对比及Java代码实战

在Windows中,磁盘中用反斜杠(又称为右斜杠)\表示路径的分隔。在浏览器中用正斜杠/来表示路径的分隔。 Linux则是统一用/表示路径的分隔的。下面给出Linux中一些常见的路径表示: / 表示根目录./ 表示当前目录…/ 表示上级目录 …

如果夸克网盘开了会员下载还是很慢怎么办

最近发现一个windows系统下很奇怪的bug,通过夸克网盘客户端下载别人分享的夸克网盘内容的时候,莫名其妙的会在10M/s和0M/s之间来回徘徊,速度慢到不能忍。 在尝试了几种方法之后,发现一种神奇的方法居然可以解决这个奇怪的bug...所…

C++:初步接触C++(2)

hello,各位小伙伴,本篇文章跟大家一起学习C,感谢大家对我上一篇的支持,如有什么问题,还请多多指教 ! 文章目录 内联函数1.概念2.特性 auto关键字1.auto简介2.auto的使用细则3.auto不能推导的场景 基于范围…

「每日跟读」英语常用句型公式 第3篇

「每日跟读」英语常用句型公式 第3篇 1. I don’t know how to ____ 我不知道如何_____ I don’t know how to play soccer (我不知道怎么踢足球) I don’t know how to study(我不知道如何学习) I don’t know how to play chess (我不知道如何下国…

备战蓝桥杯---刷二分与前缀和题

刷点题~ 1.二分多路归并算法 对于每一个技能,我们把它看成一个等差数列,我们把所有可能都放到一个集合里,排个序,取前m个大即可,现在考虑优化,假如m不是很大,我们直接用优先队列即可&#xff0…

普通Java工程可执行JAR两种打包方式探讨

文章目录 一、需求概述二、代码结构三、运行结果四、打包设置1. 一体化可执行包2. 带外部依赖lib的可执行包 五、打包运行1. 源码放送2. 打包执行3. 打包结果 一、需求概述 普通Java工程 docker-show 实现了定时打印docker应用信息,现在需要将其打包成可执行Jar部署…

设计模式总结-装饰者模式

模式动机 一般有两种方式可以实现给一个类或对象增加行为: 继承机制,使用继承机制是给现有类添加功能的一种有效途径,通过继承一个现有类可以使得子类在拥有自身方法的同时还拥有父类的方法。但是这种方法是静态的,用户不能控制增…

使用msf进行有防火墙限制的3389端口转发

使用msf进行有防火墙限制的3389端口转发 这里主要是针对在内网中遇到需要开启3389的时候,发现存在防火墙,就没有办法直接远程连接,这个时候就可以使用端口转发使用msf,使用前记得先初始化,连接好数据库这里先使用msf进…

如何部署上线项目

❤️ Author: 老九 ☕️ 个人博客:老九的CSDN博客 🙏 个人名言:不可控之事 乐观面对 😍 系列专栏: 文章目录 多环境多环境分类前端多环境实战请求地址启动方式项目配置 后端多环境实战 项目部署原始部署前端…

深入理解计算机系统 家庭作业 2.84

这题没有这个要求所以可以用 ? > : < 这种运算 以下代码用的是位级运算.因为我误解了题意 呜呜呜 想看用判断的代码请自行百度 ((((ux<<9>>9)<<((ux<<1>>24)-127)) - ((uy<<9>>9)<<((uy<<1>>24)-127)))>…

当代软件专业大学生与青年在新质生产力背景下的发展探究

在新质生产力的浪潮中,信息技术以前所未有的速度革新,为软件专业的大学生和青年带来了丰富的机遇,同时也伴随着一系列的挑战。他们如何把握时代的脉搏,实现个人的发展,成为了值得深入探讨的话题。 一、新质生产力背景下的机遇 随着新质生产力的不断发展,信息技术在各个领…

一篇文章带你掌握二叉树(附带二叉树基本操作完整代码演示,和两种思路)

【本长内容】 1. 掌握树的基本概念 2. 掌握二叉树概念及特性 3. 掌握二叉树的基本操作 4. 完成二叉树相关的面试题练习 1. 树形结构 1.1 概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是…