Python导入不同文件夹中文件的方法详解

作者:IT__learning 时间:2022-01-22 09:30:08 

前言

在写 python 程序的时候,经常会用到引入其他文件夹里的 py 文件,要是都在同目录下直接 import 就好了,可是有的不在同一个目录,很多时候就直接 import 报错了。下面介绍导入文件的方法:

一、导入同一目录下的文件

如下图,main.py 和 config.py 文件都在同一个目录。

Python导入不同文件夹中文件的方法详解

如果要在 mian.py 中导入 config.py,代码如下:

import config

二、导入不同目录下的文件

1、 调用子目录下的文件

目录如下:

Python导入不同文件夹中文件的方法详解

如果要在 main.py 中导入同级目录下的子目录文件 BERT_BiLSTM_CRF.py,就必须在 model 文件夹下建立空文件__init__.py文件。新的目录结构如下:

Python导入不同文件夹中文件的方法详解

导入代码如下:

from model.BERT_BiLSTM_CRF import BERT_BiLSTM_CRF    # 导入文件下的 BERT_BiLSTM_CRF 函数

2、导入上级目录下的文件

目录如下:

Python导入不同文件夹中文件的方法详解

想要实现 main.py 调用 BERT_BiLSTM_CRF.py,做法是先跳到上级目录 BERT-Chinese-NER-pytorch 下面,然后在 model 目录下建一个空文件 init.py ,就可以像第二步调用子目录下的模块一样进行调用了。新的目录结构如下:

Python导入不同文件夹中文件的方法详解

导入代码如下:

import sys
sys.path.append("..")    # 跳到上级目录下面(sys.path添加目录时注意是在windows还是在Linux下,windows下需要‘\\'否则会出错。)
from model.BERT_BiLSTM_CRF import BERT_BiLSTM_CRF    # 导入

关于 init.py

在 python 模块的每一个包中,都有一个 init.py 文件(这个文件定义了包的属性和方法),然后是一些模块文件和子目录,假如子目录中也有__init__.py ,那么它就是这个包的子包了。当你将一个包作为模块导入(比如从 xml 导入 dom )的时候,实际上导入了它的__init__.py 文件。

一个包是一个带有特殊文件 __init__.py 的目录,__init__.py 文件定义了包的属性和方法。其实它可以什么也不定义,可以只是一个空文件,但是必须存在。如果 __init__.py 不存在,这个目录就仅仅是一个目录,而不是一个包,它就不能被导入或者包含其它的模块和嵌套包。

附:python 导入一个文件夹下的所有文件

import os

path=""#填写自己想要读取的文件夹路径
files=os.listdir(path)

text=''
for file in files:
    position=path+file
#     print(position)
   with open(position ,'r',encoding='utf-8') as f:
       for line in f.readlines():
          text+=line      
print(text)

来源:https://blog.csdn.net/IT__learning/article/details/120685584

标签:python,导入,文件夹
0
投稿

猜你喜欢

  • php中json_decode()和json_encode()的使用方法

    2023-06-11 16:31:56
  • windows下安装php的memcache模块的方法

    2023-11-20 05:47:38
  • JavaScript 图片变换效果(ie only)

    2010-01-20 12:40:00
  • PHP PDOStatement::errorCode讲解

    2023-06-11 12:40:23
  • 超级连接的title提示中如何换行实现多行显示

    2008-03-07 15:57:00
  • PDO::beginTransaction讲解

    2023-06-06 00:57:46
  • Web标准基础教程:CSS简写指南

    2010-04-02 12:47:00
  • python开发之IDEL(Python GUI)的使用方法图文详解

    2023-09-15 23:22:42
  • 学习ASP.NET八天入门:第七天

    2007-08-07 13:52:00
  • Win7或Windows server 2008中IIS7支持ASP+Access解决方法

    2012-03-27 18:31:27
  • 函数式编程让JS更优美

    2008-06-10 12:40:00
  • ActionScript3.0是革命性的

    2008-05-01 12:36:00
  • PHP 截取字符串 分别适合GB2312和UTF8编码情况

    2023-09-30 18:02:30
  • 如何判断发言是否为空?

    2010-01-12 20:15:00
  • 如何获知服务器上Application对象及其对应的值?

    2009-11-24 18:09:00
  • 编码问题引起的折腾

    2009-07-03 12:43:00
  • Python标准库shutil用法实例详解

    2021-03-25 21:04:25
  • Go语言文件开关及读写操作示例

    2023-08-05 19:47:27
  • asp随机获取access数据库中的一条记录

    2007-08-15 13:11:00
  • Apache2.4.x版wampserver本地php服务器如何让外网访问及启用.htaccess

    2023-11-04 09:27:00
  • asp之家 网络编程 m.aspxhome.com