1. python源程序文件的擴展名為什麼
源程序的擴展名是 .py
2. python命名空間包導入演算法
要理解命名空間包,需從底層去學習包導入操作在Python 3.3中是如何完成的。在導入過程中,3.3版本與3.2和之前的版本一樣,依舊會遍歷模塊搜索路徑sys.path中的每個目錄。然而,在3.3版本中,當對每個模塊搜索路徑中的directory搜索名為spam的被導人包時,Python會按照下面的順序測試一系列更廣的匹配條件:
1.如果找到directory\spaml_init__.py,便會導入一個常規包並返回。
2.如果找到directoryspam.ipy,pyc,或其他模塊擴展名},便會導人一個簡單模塊並
返回。
3.如果找到文件夾directorylspam,便會將其記錄下來,而掃描將從搜索路徑中的下一
個目錄繼續。
4.如果上述的所有都沒有找到,掃描將從搜索路徑中的下一個目錄繼續。
如果搜索路徑掃描結束後沒有從上述步驟1和步驟2中返回一個模塊或包,而同時在上述步驟3中至少記錄了一個路徑,那麼就會創建一個命名空間包。
命名空間包的創建會立即發生,而且不會推遲到一個子層級的導入發生之時。新的命名空間包有一個_path_屬性,該屬性被設置為在上述步驟3中掃描並記錄的目錄路徑字元串的可迭代對象,但是沒有_file_屬性。
path_屬性在隨後更深的訪問過程中用於搜索所有包組件。命名空間包的_path_中每個被記錄的項目,都會在進一步嵌套的項目被請求時進行搜索,這很像一個常規包的單獨路徑。
從另一方面看,命名空間包的_path_屬性對於更低層次組件的關系,和sys.path對於頂層最左側的包導入路徑的關系是一樣的。命名空間包成為了訪問更低層次項目的「父路徑」,這一訪問也使用了上面介紹的四個步驟。
最終的結果是一個命名空間包是一種對多個目錄的虛擬拼接,這些目錄可以位於多個sys.path項目中。然而一旦一個命名空間包被創建,它和一個常規包之間並沒有功能上的區別,它能夠支持我們所學過的常規包的一切功能,包括包相對導入語法。
3. python的源程序以什麼為擴展名
.py,希望能幫到你
4. python 獲取文件後綴名
程序代碼如下所示:
importos
dict={}
ford,fd,flinos.walk(r"F:\"):
forfinfl:
sufix=os.path.splitext(f)[1][1:]
ifdict.has_key(sufix):
dict[sufix]+=1
else:
dict[sufix]=1
foritemindict.items():
print"%s:%s"%item
第二行:創建一個字典用來保存文件後綴名及個數;
第三行:循環的目的主要就是os.path.splitext()分離後綴名和文件名;
最後列印輸出。
5. 有哪位大神指導下,Python中文件、模塊與包三者之間有什麼區別呀麻煩解釋的詳細點哈,謝謝啦。。。。
在python里雖然有這三個概念,不過實際上三者基本是同義詞。真的沒有大區別
你建立一個目錄,在裡面放一個__init__.py,那個你就可以import 這個目錄,在__init__.py里可以將各個模塊略略組織一個,其實放在一個空文件也一樣能用。
文件當然也可以直接import, 模塊通常就是一個文件。
所以從這個角度看,python的包管理是透明的。很簡單。它就是順序搜索路徑。然後找到相應的目錄或者是文件。如果名子一致就_import_函數載入它。挺簡單。
不過在編程的時候,這三個概念就差別大了。 這是個概念上的區別。
模塊是模塊化編程的要求。 一個模塊一般可以包括多個文件。也可以一個文件。通常是一個。
而包是一個可以完整測試的,獨立發布的模塊組合。通常發布在python指定的目錄里。
當你多個項目使用同一組模塊時,可以將模塊封裝成包,發布到公共目錄里。這就是包的意義。
結構化編程,面向對象編程,程序設計模塊化(編程規范)這些都是編程的方法。工程方法。在python里也適用這些方面,僅此而亦。
6. python中包的理解與運用
6.4. 包
包通常是使用用「圓點模塊名」的結構化模塊命名空間。例如,名為 A.B 的模塊表示了名為 A 的包中名為 B 的子模塊。正如同用模塊來保存不同的模塊架構可以避免全局變數之間的相互沖突,使用圓點模塊名保存像 NumPy 或 Python Imaging Library 之類的不同類庫架構可以避免模塊之間的命名沖突。
假設你現在想要設計一個模塊集(一個「包」)來統一處理聲音文件和聲音數據。存在幾種不同的聲音格式(通常由它們的擴展名來標識,例如:.wav, .aiff,.au ),於是,為了在不同類型的文件格式之間轉換,你需要維護一個不斷增長的包集合。可能你還想要對聲音數據做很多不同的操作(例如混音,添加回聲,應用平衡 功能,創建一個人造效果),所以你要加入一個無限流模塊來執行這些操作。你的包可能會是這個樣子(通過分級的文件體系來進行分組)
當導入這個包時,Python 通過 sys.path 搜索路徑查找包含這個包的子目錄。
為了讓 Python 將目錄當作內容包,目錄中必須包含 __init__.py 文件。這是為了避免一個含有爛俗名字的目錄無意中隱藏了稍後在模塊搜索路徑中出現的有效模塊,比如 string。最簡單的情況下,只需要一個空的 __init__.py 文件即可。當然它也可以執行包的初始化代碼,或者定義稍後介紹的 __all__ 變數。
用戶可以每次只導入包里的特定模塊,例如:
import sound.effects.echo
這樣就導入了 sound.effects.echo 子模塊。它必需通過完整的名稱來引用:
sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)
導入包時有一個可以選擇的方式:
from sound.effects import echo
這樣就載入了 echo 子模塊,並且使得它在沒有包前綴的情況下也可以使用,所以它可以如下方式調用:
echo.echofilter(input, output, delay=0.7, atten=4)
還有另一種變體用於直接導入函數或變數:
from sound.effects.echo import echofilter
這樣就又一次載入了 echo 子模塊,但這樣就可以直接調用它的 echofilter() 函數:
echofilter(input, output, delay=0.7, atten=4)
需要注意的是使用 from package import item 方式導入包時,這個子項(item)既可以是包中的一個子模塊(或一個子包),也可以是包中定義的其它命名,像函數、類或變數。import 語句首先核對是否包中有這個子項,如果沒有,它假定這是一個模塊,並嘗試載入它。如果沒有找到它,會引發一個 ImportError 異常。
7. python 中的包、模塊、類具體、方法名。package,,,,,
說模塊太遙遠了。
來個簡單的。
新建一個python文件func.py
內容如下
def myprint(x):
print x
再新建一個python文件1.py
內容如下:
import func
func.myprint("ok")
1.py這個文件 import 了func這個文件,然後通過func.myprint調用了func中的函數
8. python腳本文件的擴展名是什麼
python程序的擴展名有.py、.pyc、.pyo和.pyd。.py是源文件,.pyc是源文件編譯後的文件,.pyo是源文件優化編譯後的文件,.pyd是其他語言寫的python庫。
9. python程序文件擴展名是
.py
.py文件是python的腳本文件,Python在執行時,會將.py文件中的源代碼編譯成Python的byte code,再由Python Virtual Machine來執行這些編譯好的byte code。
10. python包在哪個文件夾下
python包默認安裝在Libsite-packages路徑下。
下面我們就來看一下查看python包安裝路徑的方法:
1、列印輸出該包的__file__屬性來查看
2、導入包後直接使用print(包名)語句輸出包的路徑
更多Python知識請關注Python自學網