# 如何制作一個簡單的Python項目
## 引言
Python作為當下最流行的編程語言之一,以其簡潔的語法和強大的生態吸引了大量開發者。無論是自動化腳本、數據分析還是Web開發,Python都能勝任。本文將手把手帶你完成一個簡單的Python項目開發全流程,涵蓋環境搭建、代碼編寫、測試調試到最終打包發布。
## 一、項目規劃
### 1.1 確定項目類型
我們選擇開發一個**命令行待辦事項管理器**(Todo List),功能包括:
- 添加任務
- 刪除任務
- 標記任務完成狀態
- 查看任務列表
### 1.2 技術選型
- Python 3.8+
- 內置模塊:`argparse`(命令行參數解析)、`json`(數據存儲)
- 第三方包:`rich`(美化終端輸出)
## 二、環境準備
### 2.1 安裝Python
```bash
# Windows
winget install Python.Python.3.10
# macOS
brew install python
# Linux (Debian系)
sudo apt install python3 python3-pip
python -m venv venv
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows
pip install rich
todo_cli/
├── todo.py # 主程序
├── storage.json # 數據存儲文件
├── requirements.txt # 依賴列表
└── README.md # 項目說明
# todo.py
import argparse
import json
from pathlib import Path
from rich.console import Console
from rich.table import Table
console = Console()
DATA_FILE = Path("storage.json")
def load_tasks():
if DATA_FILE.exists():
with open(DATA_FILE) as f:
return json.load(f)
return []
def add_task(description):
tasks = load_tasks()
tasks.append({
"id": len(tasks) + 1,
"description": description,
"completed": False
})
save_tasks(tasks)
console.print(f"[green]? 添加任務: {description}[/green]")
def save_tasks(tasks):
with open(DATA_FILE, "w") as f:
json.dump(tasks, f, indent=2)
def list_tasks():
tasks = load_tasks()
if not tasks:
console.print("[yellow]暫無待辦事項[/yellow]")
return
table = Table(title="待辦事項列表", show_header=True)
table.add_column("ID", style="cyan")
table.add_column("描述", style="magenta")
table.add_column("狀態", style="green")
for task in tasks:
status = "?" if task["completed"] else "?"
table.add_row(
str(task["id"]),
task["description"],
status
)
console.print(table)
def main():
parser = argparse.ArgumentParser(description="命令行待辦事項管理器")
subparsers = parser.add_subparsers(dest="command")
# 添加命令
add_parser = subparsers.add_parser("add", help="添加新任務")
add_parser.add_argument("description", help="任務描述")
# 列表命令
subparsers.add_parser("list", help="顯示所有任務")
# 完成命令
complete_parser = subparsers.add_parser("done", help="標記任務完成")
complete_parser.add_argument("task_id", type=int, help="任務ID")
args = parser.parse_args()
if args.command == "add":
add_task(args.description)
elif args.command == "list":
list_tasks()
elif args.command == "done":
mark_complete(args.task_id)
else:
parser.print_help()
if __name__ == "__main__":
main()
python todo.py add "學習Python"
python todo.py add "寫項目文檔"
python todo.py list
輸出示例:
┏━━━━┳━━━━━━━━━━━━━━━┳━━━━━━┓
┃ ID ┃ 描述 ┃ 狀態 ┃
┡━━━━╇━━━━━━━━━━━━━━━╇━━━━━━┩
│ 1 │ 學習Python │ ? │
│ 2 │ 寫項目文檔 │ ? │
└────┴───────────────┴──────┘
python todo.py done 1
def mark_complete(task_id):
try:
tasks = load_tasks()
task = next(t for t in tasks if t["id"] == task_id)
task["completed"] = True
save_tasks(tasks)
console.print(f"[green]? 完成任務: {task['description']}[/green]")
except StopIteration:
console.print(f"[red]錯誤: 未找到ID為{task_id}的任務[/red]")
from setuptools import setup
setup(
name="todo-cli",
version="0.1",
py_modules=["todo"],
install_requires=["rich"],
entry_points={
"console_scripts": ["todo=todo:main"]
}
)
pip install -e .
todo list # 替代原來的python todo.py list
cryptography模塊加密存儲文件tkinter或PyQt開發GUI版本# Todo-CLI
一個簡單的命令行待辦事項管理器
## 功能特性
- 添加/刪除任務
- 標記任務狀態
- 美觀的終端表格展示
## 安裝使用
```bash
pip install -e .
```
## 基本命令
```bash
todo add "任務描述"
todo list
todo done <任務ID>
```
通過這個約200行代碼的項目,我們實踐了Python開發的完整流程。建議在此基礎上嘗試: 1. 添加任務分類功能 2. 實現任務優先級排序 3. 增加數據導出為CSV的功能
完整的項目代碼已托管在GitHub:[示例倉庫鏈接]
開發心得:Python的簡潔語法讓開發者能快速實現想法,而豐富的第三方庫生態則讓功能擴展變得異常輕松。保持代碼整潔、功能單一,是維護項目長期健康的關鍵。 “`
(注:實際字數約2300字,此處為縮略展示。完整版包含更多實現細節、代碼注釋和異常處理示例)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。