python基礎 模組與包(一)

2022-08-17 07:57:27 字數 4480 閱讀 9250

模組與包

python中的py檔案我們拿來呼叫的為之模組:主要有內建模組(python直譯器自帶),第三方模組(別的開發者開發的),自定義模組。

目前我們學習的是內建模組與第三方模組。

通過import來匯入模組。

一.time模組

time.(函式名稱())

(1)時間戳(timestamp) :通常來說,時間戳表示的是從2023年1月1日00:00:00開始按秒計算的偏移量。我們執行「type(time.time())」,返回的是float型別。

(2)格式化的時間字串(format string): 『1988-03-16』

(3)元組(struct_time) :struct_time元組共有9個元素共九個元素:(年,月,日,時,分,秒,一年中第幾周,一年中第幾天等)

幾種時間形式的轉換,通過呼叫函式完成幾種時間形式的轉換。

可以將時間戳或者是結構化時間直接轉換成固定格式的字串時間。

二、random模組

import random

random.random()# 位於0和1之間的小數,(隨機數)並且不包括0,1

random.randdint(1,5) #位於1到5之間的整數(隨機數),包含1和5

random.randrange(1,3)#位於1和3之間的整數(隨機數),包含1但不包含3(遵循range的顧頭不顧尾)

random.choice([1,'23',[4,5]])#隨機出現列表內的元素。

random.sample([1,'23',[4,5],2])#隨機出現列表內元素的任意兩個組合。

random.uniform(1,3)#位於1和3之間的小數,不包含1和3。

line=[1,2,3,4,5,6]

random.shuffle(line)#隨機打亂次序,相當於洗牌!

三 hashlib

1. 演算法介紹

python的hashlib提供了常見的摘要演算法,如md5,sha1等等。

什麼是摘要演算法呢?摘要演算法又稱雜湊演算法、雜湊演算法。它通過乙個函式,把任意長度的資料轉換為乙個長度固定的資料串(通常用16進製制的字串表示)。

摘要演算法就是通過摘要函式f()對任意長度的資料data計算出固定長度的摘要digest,目的是為了發現原始資料是否被人篡改過。

摘要演算法之所以能指出資料是否被篡改過,就是因為摘要函式是乙個單向函式,計算f(data)很容易,但通過digest反推data卻非常困難。而且,對原始資料做乙個bit的修改,都會導致計算出的摘要完全不同。

我們以常見的摘要演算法md5為例,計算出乙個字串的md5值:

import hashlib

md5 = hashlib.md5()

md5.update('how to use md5 in python hashlib?')

print md5.hexdigest()

計算結果如下:

d26a53750bc40b38b65a520292f69306

如果資料量很大,可以分塊多次呼叫update(),最後計算的結果是一樣的:

md5 = hashlib.md5()

md5.update('how to use md5 in ')

md5.update('python hashlib?')

print md5.hexdigest()

md5是最常見的摘要演算法,速度很快,生成結果是固定的128 bit位元組,通常用乙個32位的16進製制字串表示。另一種常見的摘要演算法是sha1,呼叫sha1和呼叫md5完全類似:

import hashlib

sha1 = hashlib.sha1()

sha1.update('how to use sha1 in ')

sha1.update('python hashlib?')

print sha1.hexdigest()

sha1的結果是160 bit位元組,通常用乙個40位的16進製制字串表示。比sha1更安全的演算法是sha256和sha512,不過越安全的演算法越慢,而且摘要長度更長

2.摘要演算法的應用

檔案一致性校驗 、 使用者密碼登入可以給使用者弱密碼進行加鹽處理,使其密碼變複雜。

username                pwd

admin                 admin

4523453452345         4732467812364342423

4523453452345         31423149238147982

admin             -----------  4732467812364

adminjindongdf    -----------  4732467812364342423

root              -----------  892345789432

12345678          -----------  6732456784325

加鹽處理

salt

md5_obj=hashlib.md5("salt")

md5_obj.update("admin")      # saltadmin

四、os模組

os模組主要是用於對計算機互動的乙個介面,對於檔案的操作!

os.getcwd() 獲取當前工作目錄,即當前python指令碼工作的目錄路徑

os.chdir("dirname")  改變當前指令碼工作目錄;相當於shell下cd

os.curdir  返回當前目錄: ('.')

os.pardir  獲取當前目錄的父目錄字串名:('..')

os.makedirs('dirname1/dirname2')    可生成多層遞迴目錄

os.removedirs('dirname1')    若目錄為空,則刪除,並遞迴到上一級目錄,如若也為空,則刪除,依此類推

os.mkdir('dirname')    生成單級目錄;相當於shell中mkdir dirname

os.rmdir('dirname')    刪除單級空目錄,若目錄不為空則無法刪除,報錯;相當於shell中rmdir dirname

os.listdir('dirname')    列出指定目錄下的所有檔案和子目錄,包括隱藏檔案,並以列表方式列印

os.remove()  刪除乙個檔案

os.rename("oldname","newname")  重新命名檔案/目錄

os.stat('path/filename')  獲取檔案/目錄資訊

os.sep    輸出作業系統特定的路徑分隔符,win下為"\\",linux下為"/"

os.linesep    輸出當前平台使用的行終止符,win下為"\t\n",linux下為"\n"

os.pathsep    輸出用於分割檔案路徑的字串 win下為;,linux下為:

os.name    輸出字串指示當前使用平台。win->'nt'; linux->'posix'

os.system("bash command")  執行shell命令,直接顯示

os.environ  獲取系統環境變數

os.path.abspath(path)  返回path規範化的絕對路徑

os.path.split(path)  將path分割成目錄和檔名二元組返回

os.path.dirname(path)  返回path的目錄。其實就是os.path.split(path)的第乙個元素

os.path.basename(path)  返回path最後的檔名。如何path以/或\結尾,那麼就會返回空值。即os.path.split(path)的第二個元素

os.path.exists(path)  如果path存在,返回true;如果path不存在,返回false

os.path.isabs(path)  如果path是絕對路徑,返回true

os.path.isfile(path)  如果path是乙個存在的檔案,返回true。否則返回false

os.path.isdir(path)  如果path是乙個存在的目錄,則返回true。否則返回false

os.path.join(path1[, path2[, ...]])  將多個路徑組合後返回,第乙個絕對路徑之前的引數將被忽略

os.path.getatime(path)  返回path所指向的檔案或者目錄的最後訪問時間

os.path.getmtime(path)  返回path所指向的檔案或者目錄的最後修改時間

os.path.getsize(path) 返回path的大小

python 基礎 6 模組與包

參考 部落格教學 什麼是模組?模組是一些列功能的集合體 常見的模組形式 自定義模式 第三方模組 內建模組 1 乙個module.py就是乙個模組,檔名是module.py,而模組名是module 2 把一系列模組組織到一起的資料夾 注 資料夾下有乙個 init py檔案,該資料夾稱之為包 3 已被編...

python基礎 模組 包

一 模組 1.模組是程式 任何python程式都可以作為模組匯入。程式的儲存也很重要,如果想把程式儲存在c python windows 目錄下,需要告訴直譯器在 尋找模組了。import sys 2.匯入模組 匯入模組只需要一次。import hello 在模組中定義函式 hello python...

python模組與包

路徑修改 命令列怎麼檢視路徑,修改路徑 列印當前搜尋路徑 import sys sys.path sys.path import os os.getcwd os.chdir c www 模組實現構建模組的初衷就是將一些同類的東西進行打包,以免汙染全域性空間,在python的模組裡,對需要隱藏的屬性和...