導航:首頁 > 編程語言 > pythonimport當前目錄

pythonimport當前目錄

發布時間:2023-03-31 09:38:29

1. python 中的import 機制

解釋器 在執行語句時,遵循作用域原則。因為這和作用域有關系, 如果在頂層導入模塊,此時它的作用域是全局的;如果在函數內部導入了模塊,那它的作用域只是局部的 ,不能被其它函數使用。如果其它函數也要用到這個模塊,還需要再次導入比較麻煩。

在用import語句導入模塊時最好按照這樣的順序:

絕對路徑 就是文件的真正存在的路徑,是指從硬碟的根目錄(盤符)開始,進行一級級目錄指向文件。
相對路徑 就是以當前文件為基準進行一級級目錄指向被引用的資源文件。

以下是常用的表示當前目錄和當前目錄的父級目錄的標識符

形如from moleB import ClassB語句,根據Python內部import機制,執行細分步驟:

總結:from moleB import ClassB有兩個過程,先from mole,後import ClassB。

當然將moleA.py語句 from moleB import ClassB改為:import moleB,將在第二次執行moleB.py語句from moleA import ClassA時報錯:ImportError: cannot import name 『classA』

在一個文件下同時有 init .py文件、和其他模塊文件時,該文件夾即看作一個包(package)。包的導入 和模塊導入基本一致,只是導入包時,會執行這個 init .py,而不是模塊中的語句。
而且,如果只是單純地導入包【形如:import xxx】,而包的 init .py中有沒有明確地的其他初始化操作,則:此包下的模塊 是不會被自動導入的。當然該包是會成功導入的,並將包名稱放入當前.py的Local命名空間中。

參考文章:
Python中import機制
Python 3.x可能是史上最詳解的【導入(import)】
在Python中以絕對路徑或者相對路徑導入文件的方法
Python的模塊引用和查找路徑

2. python import 路徑問題 新手

1.python import模塊時, 是在sys.path里按順序查找的;

2.sys.path是一個列表,裡面以字元串的形式存儲了許多路徑;

3.當你增加里新的放模塊的目錄時,可以from sys import path path.append(r" 路徑 ")。

3. python為什麼不能導入當前目錄模塊

目錄?
加個__init__.py文件

4. python import什麼意思

是指在當前目錄,相對路徑下import某個模塊。 import 非常規的常見的用法有:

1、在sys.path里加入你要引用的目錄,甚至 ../的絕對目錄都可以。

2、absolute_import,可以按絕對路徑import某個模塊, 實際上這個東西好象不起作用。

至於from .XXX import yyy這種用法,在老的代碼里還是常見。其實沒有必要。因為import 本身就有這個功能。或者是用更直觀的方法importlib.import_mole(mole,parent)這樣不容易犯錯誤。

Random的作用

Random使用之前需要使用Randomize語句進行隨機數種子的初始化。RANDOM產生的是偽隨機數或者說是用一種復雜的方法計算得到的序列值,因此每次運算時需要一個不同的種子值。種子值不同,得到的序列值也不同。因此也就是真正的隨機數了。

RANDOM產生的是偽隨機數或者說是用一種復雜的方法計算得到的序列值,因此每次運算時需要一個不同的種子值。種子值不同,得到的序列值也不同。因此也就是真正的隨機數了。這也正是RANDOMIZE隨機初始化的作用。 VB里用 NEW RANDOM()來表示初始化。

5. 在python 中如何 import 父目錄中的模塊

在 python 中,如果當前目錄中存在有 __init__.py 文件,則表示該目錄為一個包(package),在包中,引用同級目錄或子目錄中的其它模塊非常簡單,直接使用 import 語句即可,並且如果是同級目錄,沒有 __init__.py 文件亦可。但如何導入父目錄中的其它模塊呢,在 python 的世界裡,沒有像 C 中直接使用 ../ 來退級的方式,像 import ../test 這樣的語句是不合法的。其它,如果理工清楚了 import 語句的工作原理,就好辦了,import 工作時,就是根據模塊名,從 sys.path 所包含的路徑中尋找對應的模塊名,如果能找到,則將其它導入到當前運行環境,根據這個規則,有如下兩種方式解決上述問題:
1、修改 sys.path 法:在導入父目錄中的模塊前,先修改 sys.path 的值,如導入父目錄中的 test 模塊,導入方法如下:import syssys.path.insert(0, "..") ;# or�0�2 sys.path.append("..")
2、將包的根目錄以外鏈的形式加入到 sys.path 中,即在 {PYTHON-HOME}\lib\site-packages 中新建一個 .pth 文件,文件內容為包根路徑,假設包的根目錄為 d:/py/mytest/,則可以在 {PYTHON-HOME}\lib\site-packages 目錄下建一個 mytest.pth 的文件,內容為 d:/py/mytest。完成上述步驟後,則可以在任何模塊中像導入已安裝的系統包一樣導入 mytest 包或是該包下的所有模塊,如 import mytest。注意,由於 python 的版本不同,在 v2.5 版以後,需要在 __init__.py 文件中顯示地使用 __all__ 變數指明當前包下有哪些模塊,要不此包是無法正常導入和工作地

6. Python其實很簡單 第十六章 目錄管理

為實現「按名存取」,必須建立文件名與輔存空間中物理地址的對應關系,體現這種對應關系的數據結構稱為文件目錄。文件目錄表目至少要包含文件名、文件的類型、文件的長度、訪問許可權、建立時間、訪問時間和文件存儲地址等內容。通過前面一章的介紹,我們已經知道在文件信息中已經包含了文件名、文件類型訪問許可權等信息,而存儲地址的信息則包含在目錄信息中。

16.1路徑

路徑通常用一個字元串來表示,可以按照路徑信息定位到一個目錄或文件。如:「C:UsersAdministratorPictures1.jpg」這個信息可以非常方便的找到這個圖片文件,「C:UsersAdministratorPictures」這個信息可以幫助我們找到更多的圖片文件。

這里所說的「路徑」和上網時碰到的「地址」含義比較相似,互聯網就相當於將個人電腦可以訪問的范圍擴大了,互聯網中的地址也是對應某一個存儲空間的路徑,按照地址可以訪問互聯網上的信息,就如同按照路徑可以找到計算機中的文件一樣。

在Python中,可以導入 os模塊 來進行目錄操作。

1、獲取當前工作目錄getcwd()函數

例:

import os

print(os.getcwd())

運行結果:

C:

這個路徑是當前Python IDLE所在的地址。

2、獲取文件的絕對路徑abspath()函數

abspath()函數是os模塊的子模塊path提供的一個函數。用法舉例如下:

import os

print(os.path.abspath(r'test.txt'))

運行結果:

C: est.txt


16.2 目錄操作類函數

1、判斷目錄是否存在exists()函數

exists()函數是os模塊的子模塊path中的函數。使用方法舉例如下:

import os

print(os.path.exists(r'C:UsersAdministratorPictures1.jpeg'))

輸出結果:

True

2、創建目錄mkdir()函數和makedirs()函數

mkdir()函數和makedirs()函數都是由os模塊提供的,下面舉例說明用法和區別。

例1:

import os

path='d:test'

if not os.path.exists(path):

os.makedirs(path)

print('該文件目錄創建成功!')

如果目錄d: est已存在,則不再創建;若不存在,則創建。

例2:

import os

path='d:testtest1test11'

if not os.path.exists(path):

os.makedirs(path)

print('該文件目錄創建成功!')

雖然目錄d: est已存在,但可以在其下繼續創建子目錄。上面的代碼可以成功地創建d: est est1 est11目錄。

mkdir()函數和makedirs()函數用法基本一樣,不同之處在於mkdir()函數只能能創建一級目錄。

3、刪除目錄函數rmdir()函數

rmdir()函數是由os模塊提供的。

例如:通過上面的例子已經建立了d: est est1 est11目錄,現在去刪除子目錄test11(此子目錄為空目錄),代碼如下:

import os

os.rmdir('d:testtest1test11')

如果要刪除的目錄非空(其下還包含有文件或文件夾),則不能刪除,並且出現Windows文件操作錯誤的提示(Python是調用操作系統命令完成文件和目錄操作的)。譬如d: est目錄下含有有子目錄,則不能對其進行如下刪除操作。

import os

os.rmdir('d:test')

此時,會出現如下錯誤提示:

Traceback (most recent call last):

File "C:/Users/zym/AppData/Local/Programs/Python/Python39/4.py", line 10, in

os.rmdir('d:test')

OSError: [WinError 145] 目錄不是空的。: 'd:test'


4、刪除非空目錄函數rmtree()函數

rmtree()函數是由Python內置的標准模塊shutil提供的,可以刪除目錄及目錄下的文件和子目錄。如刪除d: est目錄及其下的子目錄和文件,可用如下代碼:

import shutil

shutil.rmtree('d:test')

5、遍歷目錄walk()函數

walk()函數是由os模塊提供的。

語法格式:

os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])

其中,top是所要遍歷的目錄的地址;topdown為可選參數,為 True時自上而下遍歷 目錄,為False時自下而上遍歷目錄,默認值為True;onerror為可選參數,用於指定異常處理方式,默認為忽略;followlinks為可選參數,如果為 True,則會遍歷目錄下的快捷方式(linux 下是軟連接 symbolic link )實際所指的目錄(默認關閉),如果為 False,則優先遍歷 top 的子目錄。

該函數的返回值為一個三元組(root,dirs,files)。root 所指的是當前正在遍歷的這個文件夾的本身的地址;dirs 是一個 list ,內容是該文件夾中所有的目錄的名字(不包括子目錄);files 同樣是 list , 內容是該文件夾中所有的文件(不包括子目錄)。

例:遍歷d: est目錄及其子目錄下的所有子目錄和文件:

d: est目錄及其下的子目錄和文件

import os

path='d:test'

tups=os.walk(path) # 函數walk()的返回值為三元組


for root,dirs,files in tups: # 遍歷這個三元組

for name in dirs: #遍歷存放目錄值的元組

print('dir:',os.path.join(root,name))

for name in files: #遍歷存放文件名值的元組

print('file:',os.path.join(root,name))


運行結果如下:

dir: d: est est1

dir: d: est est1 est11

dir: d: est est1新建文件夾

file: d: est est1新建文本文檔.txt

file: d: est est1 est11新建文本文檔.txt

7. python遇到問題 想import一個不在當前路徑下的.py程序

python 在導入包的時候,搜索的順序是:當前路徑 (以及從當前目錄指定的sys.path),然後是PYTHONPATH,然後是python的安裝設置相關的默認路徑。

所以,你只需要在你import語句前面,把login文件夾加到sys.path即可

importsys
sys.path.append("login文件夾的絕對路徑")
importlogin_main
閱讀全文

與pythonimport當前目錄相關的資料

熱點內容
日本男男影片 瀏覽:860
matlab實用教程pdf 瀏覽:769
伺服器加密方式哪種好 瀏覽:121
顯示加密服務超時 瀏覽:611
日語口譯pdf 瀏覽:433
外人如何評價身邊的程序員 瀏覽:105
霍夫曼編碼壓縮演算法 瀏覽:122
我想學習單片機 瀏覽:644
陳寶蓮拍過 瀏覽:336
遙調命令的設定命令實現過程 瀏覽:76
演算法中最壞情況都為多少 瀏覽:995
排序演算法圖形化展示 瀏覽:782
看電影免費網站入口 瀏覽:447
加密U盤啟動區和交換區格式化 瀏覽:247
求不需要下載播放器就能看的網站 瀏覽:828
日本重生電影在線 瀏覽:623
女的被一個小孩上了 瀏覽:948
macandroid找不到設備 瀏覽:514
漫威電影不能投屏了怎麼破 瀏覽:308
安卓qq最新版本怎麼解綁手機號 瀏覽:681