最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python基礎(chǔ)之內(nèi)置模塊詳解

 更新時間:2021年06月07日 09:39:36   作者:華青水上  
Python內(nèi)置的模塊有很多,我們也已經(jīng)接觸了不少相關(guān)模塊,接下來咱們就來做一些項目開發(fā)中常用的模塊匯總和介紹,需要的朋友可以參考下

一、os

import os
 
# 1. 獲取當前腳本絕對路徑
"""
abs_path = os.path.abspath(__file__)
print(abs_path)
"""
 
# 2. 獲取當前文件的上級目錄
"""
base_path = os.path.dirname( os.path.dirname(路徑) )
print(base_path)
"""
 
# 3. 路徑拼接
"""
p1 = os.path.join(base_path, 'xx')
print(p1)
p2 = os.path.join(base_path, 'xx', 'oo', 'a1.png')
print(p2)
"""
 
# 4. 判斷路徑是否存在
"""
exists = os.path.exists(p1)
print(exists)
"""
 
# 5. 創(chuàng)建文件夾
"""
os.makedirs(路徑)
"""
"""
path = os.path.join(base_path, 'xx', 'oo', 'uuuu')
if not os.path.exists(path):
    os.makedirs(path)
"""
 
# 6. 是否是文件夾
"""
file_path = os.path.join(base_path, 'xx', 'oo', 'uuuu.png')
is_dir = os.path.isdir(file_path)
print(is_dir) # False
folder_path = os.path.join(base_path, 'xx', 'oo', 'uuuu')
is_dir = os.path.isdir(folder_path)
print(is_dir) # True
"""
 
# 7. 刪除文件或文件夾
"""
os.remove("文件路徑")
"""
"""
path = os.path.join(base_path, 'xx')
shutil.rmtree(path)
"""
  • listdir,查看目錄下所有的文件
  • walk,查看目錄下所有的文件(含子孫文件)
import os
 
"""
data = os.listdir("/Users/hqss/PycharmProjects/luffyCourse/day14/commons")
print(data)
# ['convert.py', '__init__.py', 'page.py', '__pycache__', 'utils.py', 'tencent']
"""
 
"""
要遍歷一個文件夾下的所有文件,例如:遍歷文件夾下的所有mp4文件
"""
 
data = os.walk("/Users/hqss/Documents/視頻教程/路飛Python/mp4")
for path, folder_list, file_list in data:
    for file_name in file_list:
        file_abs_path = os.path.join(path, file_name)
        ext = file_abs_path.rsplit(".",1)[-1]
        if ext == "mp4":
            print(file_abs_path)

二、shutil

import shutil
 
# 1. 刪除文件夾
"""
path = os.path.join(base_path, 'xx')
shutil.rmtree(path)
"""
 
# 2. 拷貝文件夾
"""
shutil.copytree("/Users/hqss/Desktop/圖/csdn/","/Users/hqss/PycharmProjects/CodeRepository/files")
"""
 
# 3.拷貝文件
"""
shutil.copy("/Users/hqss/Desktop/圖/csdn/WX20201123-112406@2x.png","/Users/hqss/PycharmProjects/CodeRepository/")
shutil.copy("/Users/hqss/Desktop/圖/csdn/WX20201123-112406@2x.png","/Users/hqss/PycharmProjects/CodeRepository/x.png")
"""
 
# 4.文件或文件夾重命名
"""
shutil.move("/Users/hqss/PycharmProjects/CodeRepository/x.png","/Users/hqss/PycharmProjects/CodeRepository/xxxx.png")
shutil.move("/Users/hqss/PycharmProjects/CodeRepository/files","/Users/hqss/PycharmProjects/CodeRepository/images")
"""
 
# 5. 壓縮文件
"""
# base_name,壓縮后的壓縮包文件
# format,壓縮的格式,例如:"zip", "tar", "gztar", "bztar", or "xztar".
# root_dir,要壓縮的文件夾路徑
"""
# shutil.make_archive(base_name=r'datafile',format='zip',root_dir=r'files')
 
 
# 6. 解壓文件
"""
# filename,要解壓的壓縮包文件
# extract_dir,解壓的路徑
# format,壓縮文件格式
"""
# shutil.unpack_archive(filename=r'datafile.zip', extract_dir=r'xxxxxx/xo', format='zip')

三、sys

import sys
 
# 1. 獲取解釋器版本
"""
print(sys.version)
print(sys.version_info)
print(sys.version_info.major, sys.version_info.minor, sys.version_info.micro)
"""
 
# 2. 導入模塊路徑
"""
print(sys.path)
"""
  • argv,執(zhí)行腳本時,python解釋器后面?zhèn)魅氲膮?shù)
import sys
 
print(sys.argv)
 
 
# [
#       '/Users/hqss/PycharmProjects/luffyCourse/day14/2.接受執(zhí)行腳本的參數(shù).py'
# ]
 
# [
#     "2.接受執(zhí)行腳本的參數(shù).py"
# ]
 
# ['2.接受執(zhí)行腳本的參數(shù).py', '127', '999', '666', 'wupeiqi']
 
# 例如,請實現(xiàn)下載圖片的一個工具。
 
def download_image(url):
    print("下載圖片", url)
 
 
def run():
    # 接受用戶傳入的參數(shù)
    url_list = sys.argv[1:]
    for url in url_list:
        download_image(url)
 
 
if __name__ == '__main__':
    run()

四、random

import random
 
# 1. 獲取范圍內(nèi)的隨機整數(shù)
v = random.randint(10, 20)
print(v)
 
# 2. 獲取范圍內(nèi)的隨機小數(shù)
v = random.uniform(1, 10)
print(v)
 
# 3. 隨機抽取一個元素
v = random.choice([11, 22, 33, 44, 55])
print(v)
 
# 4. 隨機抽取多個元素
v = random.sample([11, 22, 33, 44, 55], 3)
print(v)
 
# 5. 打亂順序
data = [1, 2, 3, 4, 5, 6, 7, 8, 9]
random.shuffle(data)
print(data)

五、hashlib

import hashlib
 
hash_object = hashlib.md5()
hash_object.update("武沛齊".encode('utf-8'))
result = hash_object.hexdigest()
print(result)
import hashlib
 
hash_object = hashlib.md5("iajfsdunjaksdjfasdfasdf".encode('utf-8'))
hash_object.update("武沛齊".encode('utf-8'))
result = hash_object.hexdigest()
print(result)

六、configparser

詳見地址,Python使用configparser讀取ini配置文件,http://m.fzitv.net/article/187233.htm

七、xml

詳見地址,python自定義解析簡單xml格式文件的方法,http://m.fzitv.net/article/65886.htm

八、json

json模塊,是python內(nèi)部的一個模塊,可以將python的數(shù)據(jù)格式 轉(zhuǎn)換為json格式的數(shù)據(jù),也可以將json格式的數(shù)據(jù)轉(zhuǎn)換為python的數(shù)據(jù)格式。

json格式,是一個數(shù)據(jù)格式(本質(zhì)上就是個字符串,常用語網(wǎng)絡(luò)數(shù)據(jù)傳輸)

# Python中的數(shù)據(jù)類型的格式
data = [
    {"id": 1, "name": "武沛齊", "age": 18},
    {"id": 2, "name": "alex", "age": 18},
    ('wupeiqi',123),
]
 
# JSON格式
value = '[{"id": 1, "name": "武沛齊", "age": 18}, {"id": 2, "name": "alex", "age": 18},["wupeiqi",123]]'

核心功能

json格式的作用

跨語言數(shù)據(jù)傳輸,例如:
    A系統(tǒng)用Python開發(fā),有列表類型和字典類型等。
    B系統(tǒng)用Java開發(fā),有數(shù)組、map等的類型。

    語言不同,基礎(chǔ)數(shù)據(jù)類型格式都不同。
    
    為了方便數(shù)據(jù)傳輸,大家約定一個格式:json格式,每種語言都是將自己數(shù)據(jù)類型轉(zhuǎn)換為json格式,也可以將json格式的數(shù)據(jù)轉(zhuǎn)換為自己的數(shù)據(jù)類型。

Python數(shù)據(jù)類型與json格式的相互轉(zhuǎn)換:

  • 數(shù)據(jù)類型 -> json ,一般稱為:序列化
import json
 
data = [
    {"id": 1, "name": "華青水上", "age": 18},
    {"id": 2, "name": "alex", "age": 18},
]
 
res = json.dumps(data)
print(res) # '[{"id": 1, "name": "\u6b66\u6c9b\u9f50", "age": 18}, {"id": 2, "name": "alex", "age": 18}]'
 
res = json.dumps(data, ensure_ascii=False)
print(res) # '[{"id": 1, "name": "華青水上", "age": 18}, {"id": 2, "name": "alex", "age": 18}]'
  • json格式 -> 數(shù)據(jù)類型,一般稱為:反序列化
import json
 
data_string = '[{"id": 1, "name": "華青水上", "age": 18}, {"id": 2, "name": "alex", "age": 18}]'
 
data_list = json.loads(data_string)
 
print(data_list)

類型要求

python的數(shù)據(jù)類型轉(zhuǎn)換為 json 格式,對數(shù)據(jù)類型是有要求的,默認只支持:

 +-------------------+---------------+
    | Python            | JSON          |
    +===================+===============+
    | dict              | object        |
    +-------------------+---------------+
    | list, tuple       | array         |
    +-------------------+---------------+
    | str               | string        |
    +-------------------+---------------+
    | int, float        | number        |
    +-------------------+---------------+
    | True              | true          |
    +-------------------+---------------+
    | False             | false         |
    +-------------------+---------------+
    | None              | null          |
    +-------------------+---------------+
 
 
data = [
    {"id": 1, "name": "武沛齊", "age": 18},
    {"id": 2, "name": "alex", "age": 18},
]

其他類型如果想要支持,需要自定義JSONEncoder才能實現(xiàn)

import json
from decimal import Decimal
from datetime import datetime
 
data = [
    {"id": 1, "name": "武沛齊", "age": 18, 'size': Decimal("18.99"), 'ctime': datetime.now()},
    {"id": 2, "name": "alex", "age": 18, 'size': Decimal("9.99"), 'ctime': datetime.now()},
]
 
 
class MyJSONEncoder(json.JSONEncoder):
    def default(self, o):
        if type(o) == Decimal:
            return str(o)
        elif type(o) == datetime:
            return o.strftime("%Y-%M-%d")
        return super().default(o)
 
 
res = json.dumps(data, cls=MyJSONEncoder)
print(res)

其他功能

json模塊中常用的是:

json.dumps,序列化生成一個字符串。

json.loads,發(fā)序列化生成python數(shù)據(jù)類型。

json.dump,將數(shù)據(jù)序列化并寫入文件(不常用)

import json
 
data = [
    {"id": 1, "name": "武沛齊", "age": 18},
    {"id": 2, "name": "alex", "age": 18},
]
 
file_object = open('xxx.json', mode='w', encoding='utf-8')
 
json.dump(data, file_object)
 
file_object.close()
  • json.load,讀取文件中的數(shù)據(jù)并反序列化為python的數(shù)據(jù)類型(不常用)
import json
 
file_object = open('xxx.json', mode='r', encoding='utf-8')
 
data = json.load(file_object)
print(data)
 
file_object.close()

九、time

import time
 
# 獲取當前時間戳(自1970-1-1 00:00)
v1 = time.time()
print(v1)
 
# 時區(qū)
v2 = time.timezone
 
# 停止n秒,再執(zhí)行后續(xù)的代碼。
time.sleep(5)

十、datetime

在平時開發(fā)過程中的時間一般是以為如下三種格式存在:

  • datetime
from datetime import datetime, timezone, timedelta
 
v1 = datetime.now()  # 當前本地時間
print(v1)
 
tz = timezone(timedelta(hours=7))  # 當前東7區(qū)時間
v2 = datetime.now(tz)
print(v2)
 
v3 = datetime.utcnow()  # 當前UTC時間
print(v3)
from datetime import datetime, timedelta
 
v1 = datetime.now()
print(v1)
 
# 時間的加減
v2 = v1 + timedelta(days=140, minutes=5)
print(v2)
 
# datetime類型 + timedelta類型
from datetime import datetime, timezone, timedelta
 
v1 = datetime.now()
print(v1)
 
v2 = datetime.utcnow()  # 當前UTC時間
print(v2)
 
# datetime之間相減,計算間隔時間(不能相加)
data = v1 - v2
print(data.days, data.seconds / 60 / 60, data.microseconds)
 
# datetime類型 - datetime類型
# datetime類型 比較 datetime類型
  • 字符串
# 字符串格式的時間  ---> 轉(zhuǎn)換為datetime格式時間
text = "2021-11-11"
v1 = datetime.strptime(text,'%Y-%m-%d') # %Y 年,%m,月份,%d,天。
print(v1)
# datetime格式 ----> 轉(zhuǎn)換為字符串格式
v1 = datetime.now()
val = v1.strftime("%Y-%m-%d %H:%M:%S")
print(val)
  • 時間戳
# 時間戳格式 --> 轉(zhuǎn)換為datetime格式
ctime = time.time() # 11213245345.123
v1 = datetime.fromtimestamp(ctime)
print(v1)
# datetime格式 ---> 轉(zhuǎn)換為時間戳格式
v1 = datetime.now()
val = v1.timestamp()
print(val)

補充:

  • UTC/GMT:世界時間
  • 本地時間:本地時區(qū)的時間。

Python中關(guān)于時間處理的模塊有兩個,分別是time和datetime。

至此,Python常用的10個內(nèi)置模塊總結(jié)到此結(jié)束,歡迎大家 批評指正!

到此這篇關(guān)于Python基礎(chǔ)之內(nèi)置模塊詳解的文章就介紹到這了,更多相關(guān)Python內(nèi)置模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python 裝飾器代碼解析

    Python 裝飾器代碼解析

    裝飾器(Decorators)是 Python 的一個重要部分。簡單地說:他們是修改其他函數(shù)的功能的函數(shù)。他們有助于讓我們的代碼更簡短,也更Pythonic(Python范兒)。大多數(shù)初學者不知道在哪兒使用它們,所以我將要分享幾個示例
    2021-11-11
  • 六個Python編程最受用的內(nèi)置函數(shù)使用詳解

    六個Python編程最受用的內(nèi)置函數(shù)使用詳解

    在日常的python編程中使用這幾個函數(shù)來簡化我們的編程工作,經(jīng)常使用能使編程效率大大地提高。本文為大家總結(jié)了六個Python編程最受用的內(nèi)置函數(shù),感興趣的可以了解一下
    2022-07-07
  • python百行代碼自制電腦端網(wǎng)速懸浮窗的實現(xiàn)

    python百行代碼自制電腦端網(wǎng)速懸浮窗的實現(xiàn)

    這篇文章主要介紹了python百行代碼自制電腦端網(wǎng)速懸浮窗的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • 520必備!這些Python表白代碼祝你脫單成功

    520必備!這些Python表白代碼祝你脫單成功

    不會還有程序猿沒有女朋友吧?沒關(guān)系,今天特地為大家整理了這些Python花式表白代碼,你就放心大膽的去吧,需要的朋友可以參考下
    2021-05-05
  • python壓縮文件夾內(nèi)所有文件為zip文件的方法

    python壓縮文件夾內(nèi)所有文件為zip文件的方法

    這篇文章主要介紹了python壓縮文件夾內(nèi)所有文件為zip文件的方法,可實現(xiàn)簡單的zip文件壓縮功能,需要的朋友可以參考下
    2015-06-06
  • 使用python?matplotlib畫折線圖實例代碼

    使用python?matplotlib畫折線圖實例代碼

    Matplotlib是一個Python工具箱,用于科學計算的數(shù)據(jù)可視化,下面這篇文章主要給大家介紹了關(guān)于如何使用python?matplotlib畫折線圖的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • 關(guān)于Python可視化Dash工具之plotly基本圖形示例詳解

    關(guān)于Python可視化Dash工具之plotly基本圖形示例詳解

    這篇文章主要介紹了關(guān)于Python可視化Dash工具之plotly基本圖形示例詳解,需要的朋友可以參考下
    2021-03-03
  • 使用原生Python編寫Hadoop?MapReduce程序

    使用原生Python編寫Hadoop?MapReduce程序

    在大數(shù)據(jù)處理領(lǐng)域,Hadoop?MapReduce是一個廣泛使用的框架,用于處理和生成大規(guī)模數(shù)據(jù)集,本文將使用原生Python編寫Hadoop?MapReduce程序,需要的可以參考下
    2025-02-02
  • Python實現(xiàn)簡單拆分PDF文件的方法

    Python實現(xiàn)簡單拆分PDF文件的方法

    這篇文章主要介紹了Python實現(xiàn)簡單拆分PDF文件的方法,可實現(xiàn)將一個PDF文件拆分成指定份數(shù)的功能,涉及pyPdf模塊的使用技巧,需要的朋友可以參考下
    2015-07-07
  • 在python項目的docker鏡像里如何使用pdm管理依賴

    在python項目的docker鏡像里如何使用pdm管理依賴

    在 DjangoStarter 項目中,我已經(jīng)使用 pdm 作為默認的包管理器,不再直接使用 pip,所以部署的時候 dockerfile 和 docker-compose 配置需要修改一下,這篇文章主要介紹了在python項目的docker鏡像里使用pdm管理依賴,需要的朋友可以參考下
    2024-08-08

最新評論

阿拉善右旗| 长岭县| 高安市| 安福县| 城步| 海晏县| 三明市| 白城市| 汉沽区| 兰西县| 秦皇岛市| 隆化县| 沅江市| 平舆县| 城口县| 天柱县| 桂东县| 济阳县| 阜平县| 得荣县| 错那县| 黄龙县| 云林县| 太白县| 武宣县| 汽车| 灌南县| 林芝县| 来安县| 抚松县| 大丰市| 禹州市| 门源| 潜江市| 东方市| 交城县| 平凉市| 邹城市| 林甸县| 平遥县| 嘉定区|