Day5 - Python基礎5 常用模塊學習
Day5 - Python基礎5 常用模塊學習
模塊介紹
1.定義:
模塊:用來從邏輯上組織python代碼(變量、函數、類、邏輯:實現一個功能),本質就是*.py結尾的python文件(文件名:test.py,對應的模塊名:test)
包:用來從邏輯上組織模塊,本質就是一個目錄(必須帶一個__init__.py的文件)
2.導入方法
import module1_name,module2_name
from module_name import *(慎用,可能會和main中其它模塊沖突)
from module_name import function1_name,function1_name(導入多個方法)
from module_name import function_name as new_ function_name(as可以在導入時給模塊起別名,避免和其它模塊名沖突)
3.import本質(路徑搜索和搜索路徑)
導入模塊的本質就是把python文件解釋一遍
導入包的本質就是執行包下面的__init__.py文件,所以要在__init__.py文件把包下面的模塊import
1 #-*- coding:utf-8 -*- 2 from . import test1 #.指從當前路徑,導入test1模塊
import module_name--->module_name.py---->module_name.py的路徑---->sys.path
from module import function_name-->使用時可以直接調用function_name
import module---->相當於把module下面的代碼賦值給了module,調用時要module.function_name方式
模塊路徑獲取方法(搜索sys.path中的目錄):
1 #-*- coding:utf-8 -*- 2 import sys,os 3 x=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 4 print(x) 5 #os.path.abspath(__file__)獲取當前文件絕對路徑模塊路徑獲取方法6 #os.path.dirname()獲取文件當前目錄 7 sys.path.append(x) #將路徑加入python搜索路徑
4.導入優化
當前路徑導入優化
1 #-*- coding:utf-8 -*- 2 #每次調用都要搜索module_test路徑 3 import module_test 4 def logger(): 5 module_test.test() 6 print(‘in the logger‘) 7 8 def search(): 9 module_test.test() 10 print(‘in the search‘) 11 12 #不用每次搜索module_test路徑,代碼更優化 13 from module_test import test 14 def logger(): 15 test() 16 print(‘in the logger‘) 17 18 def search(): 19 test() 20 print(‘in the search‘)View Code
5.模塊的分類
a.標準庫
b.開源模塊
c.自定義模塊
time &datetime模塊
time模塊
定義:
時間戳timestamp-以1970/1/1 0時間為準,往後的以秒為單位的時間偏移量
格式化時間format string-以特定格式輸出的時間,如2018/5/1 02:00:00
結構化時間stuct-time-元組形式返回的時間,有9個元素(年月日時分秒、第幾周、一年第幾天、夏令時)
3種格式的轉換關系:
datetime模塊
# print(datetime.datetime.now() + datetime.timedelta(3)) #當前時間+3天 # print(datetime.datetime.now() + datetime.timedelta(-3)) #當前時間-3天 # print(datetime.datetime.now() + datetime.timedelta(hours=3)) #當前時間+3小時 # print(datetime.datetime.now() + datetime.timedelta(minutes=30)) #當前時間+30分
random
1 #0和1之間的小數 2 >>> random.random() 3 0.6736917079809672 4 5 #1=< <=3 6 >>> random.randint(1,3) 7 3 8 9 #1=< <3 10 >>> random.randrange(1,3) 11 2 12 13 #1或23或5 14 >>> random.choice([1,‘23‘,[5]]) 15 [5] 16 17 #隨機取列表中2個 18 >>> random.sample([1,‘23‘,[5]],2) 19 [[5], 1] 20 21 #1和3之間的小數 22 >>> random.uniform(1,3) 23 1.8304702567160465 24 25 #洗牌 26 >>> item = [1,2,3,4] 27 >>> random.shuffle(item) 28 >>> item 29 [3, 4, 1, 2]View Code
os
OS是和操作系統交互的接口,常用於系統文件、文件夾、路徑等相關操作
sys
sys.argv-從外部獲取參數的橋梁,獲取的參數以list方式存儲
1 import sys 2 3 a=sys.argv 4 print(a) 5 6 c:\>test.py what is this 7 [‘C:\\test.py‘, ‘what‘, ‘is‘, ‘this‘]View Code
shutil
高級的文件、文件夾和壓縮處理模塊
json & picle
eval-內置函數,可以把字符串變成python執行對象
序列化:把內存中對象(變量)變成可存儲和傳輸的過程
好處:1.持久保存,如掛機狀態就是序列表的應用;2.跨平臺交互數據
shelve
序列化模塊
xml處理
實現不同語言和程序之間交換數據的協議,沒有json方便,以前使用,不過有些金融單位還在使用
yaml處理
configparser
標準配置文件配置模塊,格式和windown ini文件一樣
hashlib
hash模塊
subprocess
logging模塊
日誌模塊
re正則表達式
清除原臨時配置
Day5 - Python基礎5 常用模塊學習