Python小知識點(4)--模組相關

來源:互聯網
上載者:User

標籤:中文   value   shel   get   mon   bytes   名稱   知識點   src   

1.模組

定義:用來從邏輯上組織python代碼(變數,函數,類,邏輯:實現一個功能),本質就是以.py結尾的python檔案(檔案名稱:test.py,對應的模組名:test)。

 

:用來從邏輯上組織模組的,本質就是檔案夾(目錄),必須帶有一個__init__.py檔案。

匯入包的本質就是解釋這個包下面的__init__.py檔案。

在某個模組下需要匯入某一個包下面的內容,需要在包下面的__init__.py檔案中修改匯入方式,文法為:from . import module_name   #.表示當前路徑下

模組匯入方法

Import  module_name(模組名)===>>實質匯出的是模組名稱  name.test()

Import  module_name,m1,m2

 

from  module(模組)  import  * (函數)===>實質是把代碼複製到當前位置(不建議 )

from  module  import  module_name,m1,m2  

 

from  module  import  module_name   as modele_name_from_wfb  (as取別名)

import本質(路徑搜尋和搜尋路徑):

(1)Import  module_name   ===》把匯入的模組的全部代碼統一解釋一遍,然後賦值給module_name這個變數,例如:module_name=”modele_name.py all code"。【module_name.name】

Import module_name---->執行module_name.py---->module_name.py的路徑---sys.path

(2)from  module  import  module_name ==》把module 模組中的module_name部分放到當前檔案執行一遍。【name()】

總結:匯入模組的本質就是把python檔案解釋一遍。

2.匯入不在同一目錄下的檔案或者包:

由於匯入模組或包的實質是在系統的環境變數(路徑)下尋找所匯入的檔案或者是否存在,存在即可正確執行,否則則需要將檔案或者包的絕對路徑動態加入到系統的環境變數中。使用sys,os模組

Import sys,os
lujin=os.path.dirname(os.path.abspath(__file__))

Sys.path.append(lujin)

目的是:在當前檔案中獲得指定檔案或包的路徑(父級目錄)。

解釋:

os.path.abspath(__file__) 擷取當前檔案的絕對路徑

os.path.dirname:擷取當前檔案的父級目錄。

Sys.path.append(lujin):將所擷取的路徑加入到系統內容變數中。

 

3.匯入最佳化

(1)  Import  module_name   

module_name.name()。。

實質:先找模組,在找該模組下的方法.【尋找多了效率不高。】

(2)  from module_name import name

name() 。。

實質:把模組中的方法拿到指定位置執行一遍。相比import少了多次尋找的過程.

 

4.模組分類

a.標準庫(內建)

1. time 和datetime.  

   gmtime():擷取標準時間(0時區)

  localtime():擷取本地時間(東八區)

  time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime())  # %Y對應tm_year  %m對應tm.mon

 

 5.json和pickle模組

Json模組提供了四個功能:dumps、dump、loads、load

pickle模組提供了四個功能:dumps、dump、loads、load

.json和pickle模組只建議dumps和loads一次,否則需要根據之前的順序依次取出來很麻煩,dumps序列化為字串。

  6. shelve模組

shelve模組是一個簡單的k,v將記憶體資料通過檔案持久化的模組,可以持久化任何pickle可支援的python資料格式,【可理解為可以實現多次的dumps和、loads】

使用=》

import shelve

d = shelve.open(‘shelve_test‘) #開啟一個檔案

存:d[“key”]=value

取:d,get(“key”)    

加密模組

hashlib模組

對中/英文的加密:

import hashlib

m=hashlib.md5()

m.update(b"Hello")

m.update("It‘s me 你好".encode(encoding=’utf-8’))

對資訊的加密:

import hmac

m=hmac.new(b‘天王蓋地虎‘, ‘寶塔鎮河妖‘.encode(encoding=’utf-8’)

b‘天王蓋地虎‘:必須是bytes類型

‘寶塔鎮河妖‘.encode(encoding=’utf-8’:對含有中文的需要進行編碼(encode)成二進位。主要是有無b的區別。

 

Python小知識點(4)--模組相關

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.