1. 程式人生 > >2018-12-3python筆記(2.5-2.6模塊使用)

2018-12-3python筆記(2.5-2.6模塊使用)

python2.7 roo int 字符 str bashrc python筆記 library nes

python的強大之處在於它有很多的模塊和方法
比如 string os sys 模塊

模塊是Python組織代碼的基本方式。
一個Python腳本可以單獨運行,也可以導入到另一個腳本中運行,當腳本被導入運行時,我們將其稱為模塊(module)。
所有的.py文件都可以作為一個模塊導入
模塊名與腳本的文件名相同
例如我們編寫了一個名為hello.py的腳本,則可以在另一個腳本中用import hello語句來導入它。


Python的模塊可以按目錄組織為包
創建一個包的步驟:

  • 創建一個名字為包名的目錄
  • 在該目錄下創建一個init.py文件(必須有這樣一個文件,python才會把它識別成是一個包)
  • 根據需要,在該目錄下存放腳本文件或已編譯的擴展及子包
  • import pack.m1, pack.m2, pack.m3 import 包名.模塊名

import sys
sys.path 顯示所有python會搜索的模塊路徑
[‘‘,
‘/usr/bin‘,
‘/usr/lib64/python27.zip‘,
‘/usr/lib64/python2.7‘,
‘/usr/lib64/python2.7/plat-linux2‘,
‘/usr/lib64/python2.7/lib-tk‘,
‘/usr/lib64/python2.7/lib-old‘,
‘/usr/lib64/python2.7/lib-dynload‘,
‘/usr/lib64/python2.7/site-packages‘,
‘/usr/lib/python2.7/site-packages‘,

‘/usr/lib/python2.7/site-packages/IPython/extensions‘]
如果模塊不存在 則拋出異常
大部分模塊都是在/usr/lib64/python2.7目錄下

也可以自定義python path 比如想把 /root/library 加入進來 則可以sys.path.append(‘/root/library‘) 或者修改.bashrc文件 export PYTHONPATH

自己寫的.py腳本也可以當成模塊來導入
統計一個文件有多少字符,多少單詞,多少行的模塊
1.py文件
#!/usr/bin/python

-- coding:UTF-8 --

def wordCount(s):
chars = len(s)

words = len(s.split())
lines = s.count(‘\n‘) 這樣統計比較好
#lines = len(s.split(‘\n‘)) 這樣統計會多統計一行
print lines,words,chars
s=open(‘/etc/passwd‘,‘r‘).read()
wordCount(s)

import 導入的腳本名不能以數字開頭
如果新的腳本導入模塊,默認找的是當前目錄下的模塊 並產生一個.pyc被編譯過的模塊

調用模塊中的函數 使用 模塊名.函數名(參數) 來調用

問題:確保調用模塊的時候避免執行模塊內的本身的輸出,而只執行調用者自己的輸出
則需要 在模塊中做一個判斷 if name == ‘main
#!/usr/bin/python

-- coding:UTF-8 --

def wordCount(s):
chars = len(s)
words = len(s.split())
lines = s.count(‘\n‘) 這樣統計比較好
#lines = len(s.split(‘\n‘)) 這樣統計會多統計一行
print lines,words,chars
if name==‘main
s=open(‘/etc/passwd‘,‘r‘).read()
wordCount(s)

模塊是一個可以導入的Python腳本文件;
包是一些按目錄組織的模塊和子包,目錄下有init.py文件,此文件可以存放包的信息;
導入模塊和包的語法:

  • import , import as as可以在導入的時候給它起個新名字 import wc as 新名字
  • from … import … 比如 from 包名 import 模塊名 或者 import 包名.模塊名 或者 包名.模塊名.函數名 都可以

2018-12-3python筆記(2.5-2.6模塊使用)