09-python基礎知識-常用模組
阿新 • • 發佈:2018-12-27
常用模組
time
-
sleep:睡眠
print('開始計時') # 睡眠指定的秒數,可以是小數 time.sleep(3) print('時間到')
-
time:獲取時間戳
# 獲取時間戳(從1970-01-01 00:00:00到此刻的秒數) t = time.time() # print(t)
-
localtime:將時間戳轉換time.struct_time物件
# 將一個時間戳轉換為日期時間物件(time.struct_time) # 當不傳時間戳時,預設轉換當前時間,包含時區 local_time = time.localtime() # 可以通過屬性訪問成員
-
gmtime:將時間戳轉換time.struct_time物件
# 將時間戳轉換為日期時間物件(time.struct_time),不帶時區 gt = time.gmtime() print(gt)
-
mktime:根據年月日等資訊建立時間戳
# 根據年月日等資訊,建立一個時間戳 t = time.mktime((2018, 11, 26, 11, 1, 50, 0, 330, 0)) print(t)
-
timezone:
# 0時區與當前系統時區相差的秒數
-
strftime:對time.struct_time物件進行格式化
# 將一個時間轉換為特定格式顯示,預設轉換當前時間 # print(time.asctime()) ''' 格式化處理 %Y:年(4位) %y:年(2位) %m:月 %d:日 %D:月/日/年 %H:時 %M:分 %S:秒 %w:星期 %W:本週是今年的第幾周 ''' print(time.strftime('%D', local_time)) print(time.strftime('%Y-%m-%d %H:%M:%S', local_time))
calendar
-
示例:
import calendar # 返回一年的日曆 c = calendar.calendar(2018, w=3, l=2, c=2, m=2) # print(c) # 返回某一年的某一月的日曆 m = calendar.month(2018, 11) # print(m) # 判斷閏年 print(calendar.isleap(2008)) # 兩個年份之間的閏年數量,區間:[起始,結束) print(calendar.leapdays(2000, 2008)) print(calendar.leapdays(2000, 2009))
datetime
-
date
from datetime import date import time # 建立物件 d1 = date(2018, 11, 26) # print(d1, type(d1)) d2 = date.today() # print(d2) d3 = date.fromtimestamp(time.time()) # print(d3) # 標準格式顯示 print(d1.isoformat()) # 日曆顯示:(年,第幾周,星期) print(d2.isocalendar()) # 獲取星期,標準格式1~7 print(d3.isoweekday()) # 獲取星期,格式0~6 print(d3.weekday()) # 格式化顯示 print(d3.strftime('%Y/%m/%d')) # 提取單獨的年月日 print(d3.year, d3.month, d3.day) # 轉換為time.struct_time物件 print(d3.timetuple())
-
time
from datetime import time # 建立物件 t = time(1, 2, 3) print(t, type(t)) print(str(t)) # 單獨獲取時、分、秒 print(t.hour, t.minute, t.second) # 格式化顯示 print(t.strftime('%H::%M::%S'))
-
datetime
from datetime import datetime import time # 建立物件 dt = datetime(2018, 11, 26, 14, 53, 52) # 當前時間,帶時區 dt2 = datetime.now() # 當前時間,不帶時區 dt3 = datetime.utcnow() # 把時間戳轉換 dt4 = datetime.fromtimestamp(time.time()) # print(dt4) # 提取日期 d = dt.date() print(d, type(d)) # 提取時間 t = dt.time() print(t, type(t)) # 轉換成時間戳 print(dt.timestamp()) # 格式化顯示 print(dt.strftime('%Y/%m/%d %H/%M/%S'))
-
timedelta
from datetime import timedelta, datetime td = timedelta(seconds=3600) td2 = timedelta(days=2) dt1 = datetime(2018, 11, 26, 15, 6, 10) dt2 = datetime(2018, 11, 25, 14, 6, 10) td3 = dt1 - dt2 # print(td3, type(td3)) dt3 = dt1 + td2 # print(dt3, type(dt3)) # 提取天數 print(td3.days) # 提取秒數(天以外的) print(td3.seconds) # 總共的秒數 print(td3.total_seconds())
模組使用
-
定義:模組就是一個工具包,裡面可以包含函式、類庫等,使用時匯入即可。
-
分類:
- 標準庫:os、sys、random等
- 自定義:自己根據需要書寫的模組
- 第三方:就是別人寫好的,可以直接使用,但是需要提前安裝。
-
語法:
# 匯入模組 import time # 匯入模組中指定的內容 from time import sleep # 帶入模組,並且起別名 import random as rdm # 匯入模組中的指定內容,並且起別名 from random import randint as rint
-
as
- 使用as可以起別名,讓匯入的內容變得簡單易記
- 使用as可以解決多個模組下識別符號衝突問題
-
模糊匯入
# 模糊匯入,匯入該模組中__all__列表指定的內容 # 不建議使用: # 1.不知道匯入了什麼內容 # 2.多個模組中有同名的內容無法處理 from random import *
-
自定義模組
- 新建一個檔案(檔名不要與其他模組同名)
- 新建的檔名(除了字尾)就是模組名
- 匯入的方式與其他模組一樣
- 模組名(檔名)就是名稱空間,同一模組下的識別符號不能同名,不同的模組下的識別符號可以同名
- 多個模組有相同識別符號,可以直接匯入模組,也可以使用as起別名
-
測試模組
# 直接執行此模組,值為__main__ # 被其他模組匯入,值為模組名 # print('模組名:', __name__) # 模組測試內容可以這麼寫 # 當直接執行此模組時會執行,當被其他模組匯入時不會執行 if __name__ == '__main__': print('模組測試內容')
-
包的使用
- 定義:具有
__init__.py
檔案的多個模組的資料夾 - 說明:
__init__.py
是一個檔案作為包的標誌,即使該檔案內容為空- 包檔案可以減少匯入的複雜度
- 定義:具有
-
第三方模組安裝
- 工具:
pip
- 使用:
pip -h/--help # 檢視幫助 pip install 包名==版本 # 安裝指定的包(可以指定版本) pip install -r requirements.txt # 讀取檔案內容,根據內容進行安裝 pip uninstall 包名 # 解除安裝指定的包 pip list # 檢視已安裝的包 pip show 包名 # 檢視指定的包 pip freeze # 檢視當前系統安裝的包及版本 pip freeze > requirements.txt # 將系統環境冷凍
- 說明:
- 安裝出錯的原因通常是沒有連網或安裝目錄沒有寫的許可權
- 軟體安裝目錄:
C:\Program Files\Python36\Lib\site-packages
- 若安裝一直失敗,可以先從
https://www.pypi.org
下載下來然後再安裝,如:pip install xxx.whl
- 也可以使用pycharm進行軟體包的安裝
- 若覺得網速不好,可以改為國內的軟體源
- 工具: