imp庫,python進入import內部

2022-10-10 12:21:09 字數 1391 閱讀 1229

warning⚠️

更新於2023年 imp庫在python3裡面已經不推薦使用了

imp模組提供了乙個可以實現import語句的介面。

使用imp可以用來匯入模組和類。

imp.py_source ----1

imp.py_compiled------2

imp.c_extension------3

imp.find_module(name, [,path])

返回值是三元素元組file, pathname, description

file is an open file object positioned at the beginning, pathname is the pathname of the file found, and description is a 3-element tuple as contained in the list returned by get_suffixes() describing the kind of module found.

這裡的file可以理解為通過open()開啟的乙個控制代碼

例如:a = open(』/etc/test.sh』)的這個a

imp.load_module(name, file, pathname, description)

例子就是uts中env.py

這個是env.py這個檔案裡面定義乙個類

class a(object)

pass

下面是myb.py

import os

import sys

import imp

# dir就是env.py所在的目錄

dir = os.path.dirname(os.path.abspath())

# 這裡有個注意點,可以選擇從多個目錄中找[dir1, dir2],若果沒有找到env會報importerror

file, path_name, description = imp.find_module('env', [dir])

# 這一步就是匯入env這個模組,讓b成為a類的別名

b = imp.load_module('env', file,path_name, description).a

當我在其他檔案中需要使用b類的時候

from myb import b

好處:我從myb匯入了b,但b實際的定義是位於env.py中的a類,所以當我的env.py處於不同位置的時候,我可以匯入不同的類b

官方例子,用完之後記得關閉檔案

IMP 00009 匯出檔案異常結束 imp

在一次exp imp中,用imp匯入資料時報錯。錯誤資訊如下 imp 00009 匯出檔案異常結束 imp匯入時異常結束可以有很多原因造成,要具體問題具體分析。可能原因一 匯入的資料表過大,而我們的輸入緩衝區則太小了。解決辦法是 用pl sql developer 匯入這些在一次exp imp中,用...

資料庫重建imp技巧

在利用import進行資料庫重建過程中,有些檢視可能會帶來問題,因為結構輸入的順序可能造成檢視的輸入先於它低層次表的輸入,這樣建立檢視就會失敗.要解決這一問題,可採取分兩步走的方法 首先輸入結構,然後輸入資料.命令舉例如下 uesrname jfcl,password hfjf,host sting...

oracle 還原資料庫 imp

imp c nvs 111111 file e 專案 ishow web buckup database oracle初始資料庫匯入 20170714 expdata 20170714.dump log e 專案 ishow web buckup database oracle初始資料庫匯入 201...