timmy / 使用 hashlib 進行哈希運算
0 Lajky
0 Forky
4 Soubory
Naposledy aktivní 9 months ago
| 1 | import hashlib |
| 2 | |
| 3 | data = "Hello, World!".encode() # 轉換為位元組 |
| 4 | hash_object = hashlib.sha256(data) |
| 5 | hash_hex = hash_object.hexdigest() |
| 6 | |
| 7 | print(f"SHA-256 雜湊值: {hash_hex}") |
timmy / 使用 uuid4 產生唯一識別碼(UUID)
0 Lajky
0 Forky
4 Soubory
Naposledy aktivní 9 months ago
uuid4 產生隨機的 UUID,可用於 唯一識別碼生成、資料庫鍵值、API Token、交易 ID 等場景,確保不重複且難以預測。
| 1 | from uuid import uuid4 |
| 2 | |
| 3 | # 產生 UUID4 |
| 4 | unique_id = uuid4() |
| 5 | |
| 6 | print(f"UUID4: {unique_id}") |
| 7 | print(f"UUID4(字串格式): {str(unique_id)}") |
timmy / 使用 contextmanager 建立自訂上下文管理器
0 Lajky
0 Forky
3 Soubory
Naposledy aktivní 9 months ago
contextlib.contextmanager 可用於建立自訂的 with 語句上下文管理器,適用於 資源管理(如檔案、資料庫連線、鎖定機制),確保進入與退出時執行適當的操作。
| 1 | from contextlib import contextmanager |
| 2 | |
| 3 | @contextmanager |
| 4 | def custom_context(name): |
| 5 | print(f"進入上下文: {name}") |
| 6 | try: |
| 7 | yield name # 提供資源 |
| 8 | finally: |
| 9 | print(f"退出上下文: {name}") |
timmy / 使用 errno 處理標準錯誤代碼
0 Lajky
0 Forky
3 Soubory
Naposledy aktivní 9 months ago
errno 提供標準錯誤代碼,適用於 檔案操作、系統調用、例外處理,可提高錯誤訊息的可讀性,並方便比對特定錯誤類型。
| 1 | import errno |
| 2 | import os |
| 3 | |
| 4 | try: |
| 5 | os.remove("non_existent_file.txt") # 嘗試刪除不存在的檔案 |
| 6 | except OSError as e: |
| 7 | if e.errno == errno.ENOENT: |
| 8 | print("錯誤:檔案不存在") |
| 9 | elif e.errno == errno.EACCES: |
| 10 | print("錯誤:權限不足") |
timmy / 卸載與彈出外接 USB 裝置腳本
0 Lajky
0 Forky
1 Soubory
Naposledy aktivní 9 months ago
此腳本可自動尋找、卸載並彈出所有外接 USB 裝置,確保安全移除磁碟並避免資料損毀。
| 1 | #!/bin/bash |
| 2 | # Script to unmount and eject all external USB drives |
| 3 | |
| 4 | # 找到所有外接裝置並處理 |
| 5 | diskutil list | grep "external, physical" | awk '{print $1}' | while read -r disk; do |
| 6 | echo "Unmounting all volumes on $disk..." |
| 7 | diskutil unmountDisk "$disk" |
| 8 | echo "Ejecting $disk..." |
| 9 | diskutil eject "$disk" |
| 10 | done |
timmy / 使用 dataclass 定義資料類別
0 Lajky
0 Forky
4 Soubory
Naposledy aktivní 9 months ago
dataclass 提供簡潔的方式來定義類別,適用於需要 存儲資料、簡化初始化、提升可讀性 的場景,例如 設定管理、數據建模、API 資料結構。
| 1 | from dataclasses import dataclass |
| 2 | |
| 3 | @dataclass |
| 4 | class User: |
| 5 | name: str |
| 6 | age: int |
| 7 | email: str |
| 8 | |
| 9 | # 建立實例 |
| 10 | user = User(name="Tim", age=30, email="tim@example.com") |
timmy / 使用 tempfile 建立臨時檔案與目錄
0 Lajky
0 Forky
3 Soubory
Naposledy aktivní 9 months ago
tempfile 模組可用於建立臨時檔案或目錄,在程式執行期間存儲暫時資料,並確保在程式結束後自動清理,適用於 測試、快取、臨時儲存 等場景。
| 1 | import tempfile |
| 2 | import os |
| 3 | |
| 4 | with tempfile.TemporaryDirectory() as temp_dir: |
| 5 | pid = os.getpid() # 取得當前進程 ID |
| 6 | temp_file = os.path.join(temp_dir, f"process_{pid}.txt") |
| 7 | |
| 8 | # 建立並寫入臨時檔案 |
| 9 | with open(temp_file, "w") as f: |
| 10 | f.write(f"這是進程 {pid} 的臨時檔案") |
timmy / 使用 tqdm 顯示進度條
0 Lajky
0 Forky
4 Soubory
Naposledy aktivní 9 months ago
tqdm 是一個輕量級的 Python 進度條庫,可用於迴圈、任務執行過程的可視化,適用於 批次處理、資料處理、下載任務、計算密集型應用 等場景。
| 1 | from tqdm import tqdm |
| 2 | import time |
| 3 | |
| 4 | for i in tqdm(range(10), desc="處理中", unit="step"): |
| 5 | time.sleep(0.5) # 模擬耗時操作 |
timmy / 使用 inspect 來獲取函式與類別的詳細資訊
0 Lajky
0 Forky
3 Soubory
Naposledy aktivní 9 months ago
inspect 模組允許在執行時動態獲取函式、類別、模組的結構與資訊,適用於 除錯、程式碼分析、自動文件生成、動態調試 等場景。
| 1 | import inspect |
| 2 | |
| 3 | def example_function(a: int, b: str = "default") -> bool: |
| 4 | """示範函式,回傳 True 或 False""" |
| 5 | return bool(a) |
| 6 | |
| 7 | # 獲取函式參數 |
| 8 | signature = inspect.signature(example_function) |
| 9 | print(f"函式簽名: {signature}") |