中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

模塊

模塊:??定義模(mo)塊(kuai)時可以把一個py文(wen)件或者一個文(wen)件夾(包)稱為(wei)模(mo)塊(kuai),

??????包(bao):里面得有__init__.py 文件

??模塊的導入:

??????1: ??執行的腳本和所需導入(ru)的模(mo)(mo)塊在同一目錄下時,且需要模(mo)(mo)塊里的很多功(gong)能:  import  模(mo)(mo)塊 (as 別名)      ?模(mo)(mo)塊.函(han)數(shu)()?

??????2:   ??from 模塊(kuai) import  模塊(kuai) (as 別名(ming))      模塊(kuai).函數()

??????3:???from 模塊.模塊 import 函數????函數()

__file__為執行腳本時后面的參數,可能給你的是相對路徑或絕對路徑   ??具體情況看在終端python解(jie)釋器后(hou)面的路徑名(ming)(參數),可以通過 os.path.abspath(__file__)將其統一轉換為絕對路徑

???????????????????????????os.getcwd()??_ _file_ _??syspath???????getcwd和  .  獲取的是同(tong)一個東(dong)西

??                              image

image         image

 

 

 

 

sys模塊:

????sys.exit(0) :??結束腳本

????sys.argv() : ??獲取用戶輸入的參數??以列表存儲,sys.argx[0]為腳(jiao)本文件

import sys
if len(sys.argv) < 2:
    print("參數不夠")
    exit(0)
print(sys.argv[1])

image

????sys.path  :   python用來(lai)找模(mo)塊的路徑列表(biao)     腳本在哪個(ge)目錄(lu)sys.path中(zhong)就有此目錄(lu)

image

import sys
for i in sys.path:
    print(i)

#導入模塊時,按照這里面的路徑去找
"""
d:\test\file1

D:\Python37\python37.zip
D:\Python37\DLLs
D:\Python37\lib
D:\Python37
D:\Python37\lib\site-packages
"""

##情況1:   導入test文件夾下面file1文件夾中file_test1文件夾中的a.py模塊
    #由于sys.path中有 d:\test\file1 路徑則導入時可以繼續按這個路徑繼續往下找到file_tset1文件中的a.py模塊
#方法一:
import file1_test1.a
#方法二:
from file1_test1 import a
#方法三:(導入模塊中某個函數
from file1_test1.a import func

##情況2:   導入test文件夾下面file2中test2.py模塊
    #由于file2在test文件夾下,且sys.path中沒有D:\test,所以要在sys.path中添加環境變量去找到file2

#第一步:由于file2和運行的腳本在同一test文件中所以得獲取當前腳本的絕對路徑,得到其共同的目錄
import os
a = os.path.dirname(os.path.abspath(__file__)) #得到D:\test        __file__當前腳本的路勁,可能給到的是絕對路徑或相對路徑
sys.path.append(a)#將此路徑添加到sys.path中,以便找到模塊
#第二步:導入模塊
#方法一:(將file2中test2.py模塊全導入
import file2.test2 
from file2 import test2
#方法二:(導入個別函數
from file2.test2 import func2

 

 

shutil模塊:??用于高級的文件操作和目錄處理

????shutil.rmtree(path)  :????path得(de)是其絕對路徑??遞歸刪除整個文件目錄(lu),不可以是文件(刪除單(dan)個文件用os.remove)

#刪除整個目錄腳本
import sys,shutil
def get_file_path(path):
    file_path = sys.argv[1]
    shutil.rmtree(file_path)
######
import shutil
shutil.rmtree(r'D:\guohan\code\模塊\fsa')

????shutil.move():重命名(ming)(ming)(ming)并移動(優(you)先于os.rename)  ????不僅(jin)可以重命名(ming)(ming)(ming)還可以移動位置,  要重命名(ming)(ming)(ming)的(de)文(wen)件(jian)路(lu)徑(jing)得(de)指明(ming)(不和(he)(he)腳(jiao)(jiao)本在同一目錄(lu)下時(shi))  重命名(ming)(ming)(ming)后的(de)文(wen)件(jian)路(lu)徑(jing)也得(de)指明(ming)  不然(ran)會添加(jia)到腳(jiao)(jiao)本所在的(de)目錄(lu)下,指明(ming)了路(lu)徑(jing)即使不和(he)(he)腳(jiao)(jiao)本在同一目錄(lu)也能(neng)找到并重命名(ming)(ming)(ming)和(he)(he)移動位置

import shutil
shutil.move(r'D:\guohan\code\函數','hanshu')

 image

import shutil
shutil.move(r'D:\guohan\code\模塊\hanshu',r'D:\guohan\code\函數')
##文件路徑寫全不然還是只改在模塊下

image 

 ????shutil.make_archive: ??壓(ya)(ya)縮文件??格式:shutil.make_archive(要壓(ya)(ya)縮后的名字(可以含(han)路(lu)徑(jing)指定去哪,不然壓(ya)(ya)縮到(dao)腳本所在(zai)目(mu)錄),壓(ya)(ya)縮包格式(如(ru)zip),要壓(ya)(ya)縮的文件(指定絕對路(lu)徑(jing),以找到(dao)))

image

????shutil.unpack_archive:??解壓文件??格式:shutil.unpack_archive(要(yao)解壓包的(de)名(ming)字(同樣的(de)有路徑,因(yin)為(wei)先(xian)從sys,path里面找,沒有則報錯(cuo)), 要(yao)解壓的(de)路徑(若沒有該文件夾自(zi)動(dong)創建),壓縮包的(de)格式)

image

image

 

 

 

random模塊:

????random.randint(a,d)  :??生成[a,b]間的整數

#隨機驗證碼
import random
none_list = []
for i in range(6):
    data = random.randint(65,90)
    none_list.append(chr(data))
print("".join(none_list))

????random.randrange(star,stop,step): 

??????random.randrange(1,9,2):??隨機返回1357中的元素

????random.choice(seq):  ??隨(sui)機(ji)返回可(ke)迭代對象中的(de)元素

????random.sample(seq,k):??隨機返回可迭代對象中(zhong)k個(ge)不重復元素(su),返回一個(ge)列(lie)表

 

 

getpass模塊:

????getpass.getpass() :??密碼不顯示

#密碼不顯示
import getpass
pwd = getpass.getpass('輸入密碼:')
print(pwd)

image

 

 

 

hashlib模塊:

????hashlib。md5() :??md5密碼加密

#md5密碼加密
import hashlib
def md5_pwd(pwd):
    #加鹽
    obj = hashlib.md5('hkhsdkfhjksdh'.encode('utf-8')) #將字符串以utf-8編碼進行壓縮(二進制->為字節)
    obj.update(pwd.encode('utf-8')) #將密碼以utf-8編碼進行壓縮后加到所加的鹽后面進行加密
    data = obj.hexdigest()  #將加密的obj(二進制形式)轉成字符串
    return data
num = input("輸入密碼:")
print(md5_pwd(num))

 

 

 

os模塊:

????1.os.stat(file).st_size:??讀取文(wen)件(jian)大小

image

????2.os.path.exists(path):??判(pan)斷路徑是否存在 存在返(fan)回(hui)(hui)True  不(bu)存在返(fan)回(hui)(hui)False

image

????3.os.path.abspath():??獲取(qu)絕對路徑,其(qi)不關心文(wen)件(jian)(jian)是否(fou)存(cun)在直接(jie)將文(wen)件(jian)(jian)拼接(jie)到(dao)腳(jiao)本運(yun)行(xing)目錄(lu)后??,代表腳(jiao)本運(yun)行(xing)的(de)目錄(lu)(即正(zheng)處目錄(lu))  ..代表上級目錄(lu)

image

????4.os.path.dirname():??獲(huo)取路徑的上一級(ji)目(mu)錄名(ming)

image

????5.os.path.join():??對路徑進行拼接

????6.os.listdir(path):??查(cha)看該目錄下第一層文件

image

????7。os.walk(path):??查案看(kan)該目錄所有層的(de)所有文件????會生(sheng)成(cheng)一個生(sheng)成(cheng)器得(de)循環去查看(kan)??a 為查看(kan)的(de)目錄&nbsp;   b 為此目錄下的(de)文件夾    c為此目錄下的(de)文件

image

????8.os.makedirs():??創(chuang)建目(mu)錄和子目(mu)錄

image

????9.os.remove():???刪除(chu)單個文件

image

????10.os.rename():????重命名

image

????11.os.getcwd():??獲取(qu)工(gong)作目錄 

 

 

json,pickle模塊:??json是數據交換的格式,所有語言通用,是一種特殊的字符串,所有語言都認識的格式

??????????   pickle只有python用

????????json格式(shi)字符串最外層只能是(shi)[...]或者{...} ??里面則是(shi)被序列化的對象若(ruo)里面有字符串則必須是(shi)”“

????????pickle格式為二進制(zhi)的字(zi)節流

????????序列化(hua):python對象(除集合)——>json格式,pickle格式??dumps/dump??????json.dumps->str ??pickle.dumps->bytes

????????反序列(lie)化:json格式(shi)——>python對象(xiang)????loads/load

??????????注意(yi):python中集合,datetime類型(xing)不可以轉換成(cheng)json格式(shi)

?????????????python中元(yuan)組(zu)(zu)轉成json格式(shi)為[...]        反序列(lie)化時由于json里面沒有元(yuan)組(zu)(zu)所以得到的python對象沒有元(yuan)組(zu)(zu)

?????????????pthon對象中(zhong)含(han)有中(zhong)文序列化(hua)時得有json.dumps(v,ensure_ascii=False)

?????????????dump load   (不常用) 操(cao)作(zuo)文件時(shi)只能操(cao)著單個對象,如load不能把整個json格式文件類容讀(du)出來

####序列化
import json
v = [1,'guohan','郭晗',(2,3),{'4':5}]
v1 = json.dumps(v)
print(v1)
>>>[1, "guohan", "\u90ed\u6657", [2, 3], {"4": 5}]

import json
v = [1,'guohan','郭晗',(2,3),{'4':5}]
print(v,type(v))
v1 = json.dumps(v,ensure_ascii = False)
print(v1,type(v1))
>>>
[1, 'guohan', '郭晗', (2, 3), {'4': 5}] <class 'list'>
[1, "guohan", "郭晗", [2, 3], {"4": 5}] <class 'str'>
import json
v = '[1,"guohan","郭晗",[2,3],{"4":5}]'  ##json 格式的字符串
print(v,type(v))
v1 = json.loads(v)
print(v1,type(v1))
>>>
[1,"guohan","郭晗",[2,3],{"4":5}] <class 'str'>
[1, 'guohan', '郭晗', [2, 3], {'4': 5}] <class 'list'>

 

 

 

time模塊:

????1.time.time(): ??時間戳

????2.time.sleep():??程序暫停的(de)秒數

import time
def wrapper(param):
    def inner(*a,**kwa):
        v1 = time.time()
        for i in range(3):
            time.sleep(2)
            print(i)
        param(*a,**kwa)
        v2 = time.time()
        print(v2-v1)
    return inner
@wrapper
def func():
    print("func函數")
func()
>>>
0
1
2
func函數
6.014153003692627

??????3.time.strftime('%Y-%m-%d'):??格式化的字符串

import time
a = time.strftime('%Y-%m-%d')
print(a)
>>>2025-10-06

 

 

 

 

datetime模塊:

????from datetime import datetime

????1.datetime.now():??獲取(qu)當地時間(datatime類型)    ??>>>2025-10-06 18:39:28.716035

????2.datetime.utcnow():??獲取(qu)世界時間

 

 

sttr time datetime 三者轉換關系:??????datetime 為中間樞紐 其可以進行時間的加減

????datetime時間加減:

#將字符串轉換為datetime時間        
from datetime import datetime, timedelta
v = datetime.strptime('2025-10-6','%Y-%m-%d')
##datetime時間加減        timedelta
v1 = v + timedelta(days=4)
print(v1)

????

????三者轉換關系:

 image

 

 

 異常處理:           

試運行try縮進的語句,若出錯,運行except Exception as e:后面的語句,避免程序出錯

????格式:??????try:

???????????????pass

?????????????except Exception as e:

???????????????pass          (   print(‘失敗’)或者print(   {e}   )     )

 

 image

i.isdecimal()即使不(bu)是數字都能(neng)進(jin)行判斷(duan)所以不(bu)會觸發except

 

 image

content不(bu)能(neng)進(jin)行strip,異常被(bei)except捕獲執行print()&nbsp; 則不(bu)飄紅

image

 

posted @ 2025-10-06 19:55  guohan  閱讀(20)  評論(0)    收藏  舉報