当前位置: 首页 > 编程笔记 >

python import 上级目录的导入

谷梁子濯
2023-03-14
本文向大家介绍python import 上级目录的导入,包括了python import 上级目录的导入的使用技巧和注意事项,需要的朋友参考一下

有时候我们可能需要import另一个路径下的python文件,例如下面这个目录结构,我们想要在_train.py里import在networks目录下的_lstm.py和上级目录下的_config.py。

_config.py
networks
	_lstm.py
	_cnn.py
pipelines 
	_train.py

只需两步操作

(1)在networks文件夹下创建空的__init__.py文件

_config.py
networks
	_lstm.py
	_cnn.py
pipelines 
	_train.py

(2)使用sys库添加路径

# _train.py
import sys
sys.path.append("..") # 这句是为了导入_config
from networks._lstm import *
from _config import *

更新

有同学反映,Python 3.6.7以上方法失效。这里给出一个不优雅的解决方法,其本质是递归遍历文件路径,增加到引用的路径中。

完整测试代码请看 https://github.com/SongDark/Import_Test

# _train.py
import sys, os
sys.path.append("..")
sys.path.extend([os.path.join(root, name) for root, dirs, _ in os.walk("../") for name in dirs])
 

到此这篇关于python import 上级目录的导入的文章就介绍到这了,更多相关python import 上级目录内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!

 类似资料:
  • 问题内容: 我有一个名为“ ClassA”的Python类,另一个应该导入“ A ClassB”的ClassA的Python类。目录结构如下: 我将如何使用,以便ClassB可以使用ClassA? 问题答案: 您确实应该使用软件包。然后将MainDir放置在文件系统中sys.path上的某个点(例如… / site- packages)上,然后可以在ClassB中说: 您只需要在每个目录中放置命名

  • 问题内容: 是否可以将目录下移到Java下一级? 例如在命令提示符下: 我可以用来: 是否可以在中执行此操作,因为我正在使用System.getProperty(“ user.dir”);获得目录。但是,这不是我要使用的目录,而是目录的下一级。 我已经考虑过使用Path类方法;,但是如果将“ user.dir”更改为另一个目录,则返回的内容将有所不同。 问题答案: File类可以本地执行此操作。

  • ; GetParent ; 输入,堆栈顶部 (例如 C:\Program Files\Poop) ; 输出,堆栈顶部 (替换,例如 C:\Program Files) ; 不改变其它变量值。 ; ; 用法: ; Push "C:\Program Files\Directory\Whatever" ; Call GetParent ; Pop $R0

  • 主要内容:两级目录系统的特点在两级目录系统中,可以为每个用户创建一个单独的目录。 有一个主目录,其中包含专用于每个用户的单独目录。 对于每个用户,第二级存在不同的目录,其中包含用户文件组。 系统不允许用户未经许可进入其他用户的目录。 两级目录系统的特点 每个文件的路径名为 不同的用户可以拥有相同的文件名。 由于只有一个用户的列表需要遍历,搜索变得更有效率。 同一种文件不能分组到一个特定用户的单个目录中。 每个操作系统都将一个

  • 每个文件包含一个条目的目录出现在磁盘文件系统上。如下图所示 - 这种类型的目录可以用于简单的系统。 优点 实现非常简单。 如果文件的大小非常小,则搜索速度会更快。 由于只有一个目录,因此文件创建,搜索和删除非常简单。 缺点 不能有两个具有相同名称的文件。 该目录可能非常大,因此搜索文件可能需要很长时间。 保护不能为多个用户执行。 没有办法将相同类型的文件分组。 为每个文件选择唯一的名称有点复杂,并

  • 从seafile专业版5.1.3开始,支持将服务器上的一个本地文件目录导入到seafile中。它是系统管理员从现有的文件服务器(NFS,Samba etc.)中导入文件的便利工具。 要导入一个目录,应该在 seafile-server-laster 目录下使用 seaf-import.sh 脚本。 usage : seaf-import.sh -p <import dir path, must