1. 程式人生 > >Day5 - Python基礎5 常用模塊學習

Day5 - Python基礎5 常用模塊學習

持久 down pen ng- ice 參數 view tro eva

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 常用模塊學習