用Python打造简易命令行工具
在数字化时代,命令行工具以其高效、简洁的特性,成为开发者不可或缺的利器。今天,我们将一起探索如何用Python编写一个简单的命令行工具,让你在提升工作效率的同时,也能享受编程的乐趣。

准备工作
首先,确保你的电脑上已安装Python环境。你可以通过在终端输入python --version来检查Python是否已安装及其版本。
第一步:明确需求
在动手编写命令行工具前,我们需要明确工具的功能。以一个简单的“待办事项管理器”为例,我们希望实现以下功能:
- 添加待办事项
- 显示所有待办事项
- 完成待办事项
第二步:构建基础框架
创建一个名为todo.py的文件,并导入必要的库:
import sys
def add_task(task):
pass
def list_tasks():
pass
def complete_task(task_id):
pass
def main():
if len(sys.argv) < 2:
print("Usage: python todo.py [command] [options]")
sys.exit(1)
command = sys.argv[1]
if command == "add":
if len(sys.argv) != 3:
print("Usage: python todo.py add [task]")
sys.exit(1)
add_task(sys.argv[2])
elif command == "list":
list_tasks()
elif command == "complete":
if len(sys.argv) != 3:
print("Usage: python todo.py complete [task_id]")
sys.exit(1)
complete_task(int(sys.argv[2]))
else:
print("Unknown command")
sys.exit(1)
if __name__ == "__main__":
main()
第三步:实现功能
添加待办事项
我们需要一个地方来存储待办事项。这里使用一个简单的列表:
tasks = []
def add_task(task):
tasks.append(task)
print(f"Task '{task}' added.")
显示所有待办事项
展示当前所有待办事项:
def list_tasks():
if not tasks:
print("No tasks.")
else:
for idx, task in enumerate(tasks):
print(f"{idx + 1}. {task}")
完成待办事项
根据任务ID完成待办事项:
def complete_task(task_id):
if 1 <= task_id <= len(tasks):
task = tasks.pop(task_id - 1)
print(f"Task '{task}' completed.")
else:
print("Invalid task ID.")
第四步:测试工具
现在,我们可以通过命令行测试我们的工具:
python todo.py add "Write article"
python todo.py list
python todo.py complete 1
进阶:持久化存储
为了使待办事项在程序重启后依然存在,我们可以使用文件存储:
def save_tasks():
with open("tasks.txt", "w") as f:
for task in tasks:
f.write(task + "\n")
def load_tasks():
try:
with open("tasks.txt", "r") as f:
tasks.extend(f.read().strip().split("\n"))
except FileNotFoundError:
pass
def add_task(task):
tasks.append(task)
save_tasks()
print(f"Task '{task}' added.")
def complete_task(task_id):
if 1 <= task_id <= len(tasks):
task = tasks.pop(task_id - 1)
save_tasks()
print(f"Task '{task}' completed.")
else:
print("Invalid task ID.")
if __name__ == "__main__":
load_tasks()
main()
通过以上步骤,我们成功编写了一个简单的命令行待办事项管理器。这不仅是一个实用的工具,更是你探索Python编程世界的起点。希望你能在此基础上,发挥创意,打造出更多有趣的命令行工具。编程的乐趣,正藏在这些不断探索与实现的过程中。
下一篇 »
Python装饰器入门与应用