Python成長筆記 - 基礎篇 (六)python模塊

本節大綱:html

  1. 模塊介紹
  2. time &datetime模塊
  3. random
  4. os
  5. sys
  6. shutil
  7. json & picle
  8. shelve
  9. xml處理
  10. yaml處理
  11. configparser
  12. hashlib
  13. subprocess
  14. logging模塊
  15. re正則表達式
 
 
程序解耦:程序其餘地方拆分開,下降了數據邏輯層和後臺數據交互接口的關聯
 
import sys,os
 
os.path.diirname(os.path.abspath(__file__)) 打印上級目錄地址
 
模塊:
一、定義
模塊:本質是一個.py結尾的python文件(ps:文件名:test ,模塊調用名:test),用來從邏輯上組織python代碼(變量、函數、類、邏輯:本質就是爲了實現一個功能)
 
包:本質是一個目錄(必須有一個_init_.py文件),是從邏輯上組織模塊
包的導入:本質都是解釋__init__.py文件
 
 
二、導入方法
1。導入 import module_name1,module_name2
2。from module_name1 import * -->本質上是把module_name1的代碼複製到*的當前文件的位置,文件從上到下解釋執行,若文件中有相同方法會將module_name1中的方法覆蓋,不建議這樣寫 *能夠是變量、方法名
三、from module_name1 import 方法名 -->不建議使用
四、from module_name1 import 原方法名 as 別名
三、import的本質(路徑搜索和搜索路徑)
導入模塊:本質就是將module_name1模塊中全部的代碼解釋一遍後,賦值給module_name1變量(module_name1 = module_name1.py),import 新文件調用時要加 module_name1.變量/方法名。 from …… import * ,直接打開文件,將須要的代碼直接使用,直接調用便可
導入包的文件:本質就是執行該包下的__init__.py文件
 
四、導入優化
避免重複檢索模塊下的方法,直接調用模塊下的方法:
"""
import module_test
def test()
module_test.hello( ) #先檢索module_test模塊,再檢索hello()方法
print("hello")
"""
------------------------------------------------------------------------------
from module_test import hello
def test()
hello( )
print("hello")
 
五、模塊的分類
a、標準庫
一、time與datatime
在Python中,一般有這幾種方式來表示時間:1)時間戳 2)格式化的時間字符串 3)元組(struct_time)共九個元素。因爲Python的time模塊實現主要調用C庫,因此各個平臺可能有所不一樣。
 
UTC(Coordinated Universal Time,世界協調時)亦即格林威治天文時間,世界標準時間。在中國爲UTC+8。DST(Daylight Saving Time)即夏令時。
 
時間戳(timestamp)的方式:一般來講,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。咱們運行「type(time.time())」,返回的是float類型。返回時間戳方式的函數主要有time(),clock()等。
 
元組(struct_time)方式:struct_time元組共有9個元素,返回struct_time的函數主要有gmtime(),localtime(),strptime()。下面列出這種方式元組中的幾個元素
 
 
 
 
提供對操做系統進行調用的接口
-高級的 文件、文件夾、壓縮包 處理模塊
 
用於序列化的兩個模塊
  • json,用於字符串 和 python數據類型間進行轉換,字典中的數據不能直接存在文件中,把python中的數據類型轉化成字符竄,存在文件中,方便調用 解決不一樣平臺中文件格式的互相交換
  • pickle,用於python特有的類型 和 python的數據類型間進行轉換。python本身的數據間進行交換,支持全部的python數據類型
Json模塊提供了四個功能:dumps、dump、loads、load
pickle模塊提供了四個功能:dumps、dump、loads、load
 
一個簡單的key,value將內存數據經過文件持久化的模塊,能夠持久化任何pickle可支持的python數據格式
 
xml是實現不一樣語言或程序之間進行數據交換的協議,跟json差很少,但json使用起來更簡單,不過,古時候,在json還沒誕生的黑暗年代,你們只能選擇用xml呀,至今不少傳統公司如金融行業的不少系統的接口還主要是xml。
xml的格式以下,就是經過<>節點來區別數據結構的:
 
修改
刪除
增長
 
 
用於加密相關的操做,3.x裏代替了md5模塊和sha模塊,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 hmac 模塊
正則表達式
     '^'     匹配字符開頭,若指定flags MULTILINE,這種也能夠匹配上(r"^a","\nabc\neee",flags=re.MULTILINE)
     "foo$""bfoo\nsdfsf"='*'     匹配*號前的字符0次或屢次,re.findall("ab*","cabb3abcbbac")  結果爲['abb', 'ab', 'a']
     1"ab+""ab+cd+abb+bba"'ab' 'abb''?'     匹配前一個字符1次或0次
   '{n,m}' 匹配前一個字符n到m次,re.findall("ab{1,3}","abb abc abbcbbb") 結果'abb', 'ab', 'abb']
     "abc|ABC""ABCBabcCD"'ABC'
'(...)' 分組匹配,re.search("(abc){2}a(123|456)c", "abcabca456c").group() 結果 abcabca456c
 
    "\Aabc""alexabc"'\Z'    匹配字符結尾,同$
    09
'\D'    匹配非數字
    ---]
'\W'    匹配非[A-Za-z0-9]
     "\s+""ab\tc1\n3" '\t'
 
 "(?P<province>[0-9]{4})(?P<city>[0-9]{2})(?P<birthday>[0-9]{4})""371481199306143242""city"'province''3714''city''81''birthday''1993'
 
 
 
b、開源模塊
c、自定義模塊
相關文章
相關標籤/搜索