15 Python模組

救苦救难韩天尊發表於2024-09-06

本篇是 Python 系列教程第 15 篇,更多內容敬請訪問我的 Python 合集

一個模組其實就是一個檔案(以.py結尾)。使用模組的好處是便於維護和重用程式碼。

要建立一個模組,只需編寫一個新的文字檔案,儲存為 .py 副檔名。

1 引入模組

1.1 匯入整個模組

import mymodule
mymodule.some_function()

1.2 匯入特定的函式或類

from mymodule import some_function
some_function()

1.3 匯入所有內容

from mymodule import *
some_function()  # 直接呼叫函式,無需模組字首

1.4 使用別名

import mymodule as mm
mm.some_function()

2 常用模組

Python 的標準庫非常龐大,提供了大量的內建模組來支援各種程式設計任務。這裡列舉了一些常用的模組及其主要用途:

2.1 標準庫模組

2.1.1 os

作業系統相關功能,如讀取環境變數、改變目錄等。

import os
print(os.getcwd())  # 獲取當前工作目錄

2.1.2 sys

系統特定的一些變數和函式,如獲取命令列引數、退出程式等。

import sys
print(sys.argv)  # 獲取命令列引數

2.1.3 math

數學函式,如平方根、對數等。

import math
print(math.sqrt(16))  # 計算平方根

2.1.4 random

生成隨機數。

import random
print(random.randint(1, 100))  # 生成一個1到100之間的隨機整數

2.1.5 datetime

日期和時間操作。

from datetime import datetime
print(datetime.now())  # 獲取當前日期和時間

2.1.6 re

正規表示式支援。

import re
pattern = r'\d+'
result = re.findall(pattern, '123 abc 456')
print(result)  # 輸出所有匹配數字的字串

2.1.7 json

JSON 編碼和解碼。

import json
data = {'name': 'John', 'age': 30}
json_str = json.dumps(data)
print(json_str)  # 將字典轉換為 JSON 字串

2.1.8 collections

高階容器型別,如 defaultdict, Counter, deque 等。

from collections import defaultdict
d = defaultdict(int)
d['a'] += 1
print(d['a'])  # 輸出: 1

2.1.9 itertools

迭代工具,提供了高效的迴圈迭代器。

import itertools
for x in itertools.count(start=1):
    print(x)
    if x > 10:
        break  # 無限計數,直到超過10

2.1.10 functools

高階函式工具,如裝飾器、偏函式等。

from functools import lru_cache
@lru_cache(maxsize=None)
def fib(n):
    if n < 2:
        return n
    return fib(n-1) + fib(n-2)
print(fib(10))  # 計算斐波那契數列第10項

2.1.11 pathlib

用於處理路徑的現代介面。

from pathlib import Path
p = Path('/etc') / 'passwd'
print(p)  # 輸出: /etc/passwd

12. argparse

解析命令列引數和選項。

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--input", help="input file")
args = parser.parse_args()
print(args.input)

2.2 第三方模組

除了標準庫之外,還有許多第三方模組可以安裝和使用,例如:

  • NumPy - 數值計算。
  • Pandas - 資料分析。
  • Matplotlib - 資料視覺化。
  • Requests - 傳送 HTTP 請求。
  • Flask - Web 開發框架。
  • SQLAlchemy - 資料庫抽象層。