从零做一个文件哈希校验工具:拖入文件秒出 MD5/SHA-256
不用写一行代码,让 AI 帮你生成一个生产级的命令行工具 —— 这就是华为云码道(CodeArts)的魔力。
开篇
在日常运维和开发中,我们经常需要校验文件的完整性 —— 下载的文件是否被篡改?传输的文件是否完整?这时候,MD5、SHA-1、SHA-256 等哈希算法就派上了用场。但每次都手动输入命令、格式化输出确实麻烦。有没有办法快速生成一个专业、美观的文件哈希校验工具?
答案就是:华为云码道 TUI(CodeArts Terminal UI)。你只需要用自然语言描述需求,码道就能自动编写代码、创建项目结构、完成测试验证,几分钟内交付一个可用的命令行工具。
码道 TUI 安装与开通
码道 TUI 是华为云推出的 AI 编程助手,内置在 CodeArts IDE 中,支持终端交互模式。
- 开通码道:https://developer.huaweicloud.com/codeartsco.html?source=dmzntgwsf&sourcead=dmzntgwwbwz
- 获取 AK/SK:https://codearts.huaweicloud.com/portal/settings/cli-auth
在 Windows 终端中安装码道 CLI 后,执行 codearts 即可进入 TUI 交互界面。
码道能力
码道 TUI 具备以下核心能力:
- 自然语言编程:用中文或英文描述需求,自动生成完整代码
- 项目架构设计:自动规划目录结构、模块划分
- 命令行工具开发:支持 argparse 参数解析、美观的终端输出
- 测试与验证:自动编写测试、验证功能正确性
- 文档生成:同步产出 README、
requirements.txt等项目文档
任务描述
本次我们要用码道 TUI 创建一个 文件哈希校验工具(file-hash-checker),需求如下:
- 支持命令行调用,接收文件路径作为参数
- 支持 MD5、SHA-1、SHA-256 三种哈希算法
- 输出美观的带格式结果(表格边框、对齐排版)
- 支持批量校验多个文件
- 有完善的错误处理,文件不存在时给出友好提示
- 生成完整的项目结构,包含
README.md
将以上需求直接输入码道 TUI,它就会自动开始工作。
开发过程
第一步:输入需求
在码道 TUI 中输入自然语言需求,描述你想要创建的工具:

码道接收到需求后,会先进行任务规划,自动拆解为多个子任务(创建目录、编写核心模块、实现 CLI、编写文档、测试验证等)。
第二步:码道自动开发
码道开始逐项完成任务。它首先创建项目目录结构,然后编写核心的哈希计算模块,最后实现命令行入口。

整个过程全自动,无需人工干预。码道会自动处理文件写入、模块导入、错误处理等所有细节。
第三步:开发完成
码道完成所有代码编写后,会自动安装项目并运行测试,验证功能是否正常:

从输入需求到项目交付,全程耗时不到 3 分钟。
项目代码解析
码道生成的代码结构清晰、注释完善,我们来看核心模块。
哈希计算模块(hasher.py)
import hashlib
import os
from dataclasses import dataclass
from enum import Enum
from typing import Optional
class HashAlgorithm(Enum):
MD5 = "md5"
SHA1 = "sha1"
SHA256 = "sha256"
BUFFER_SIZE = 65536
@dataclass
class HashResult:
file_path: str
algorithm: HashAlgorithm
hash_value: Optional[str] = None
file_size: Optional[int] = None
error: Optional[str] = None
@property
def success(self) -> bool:
return self.error is None
def compute_hash(file_path: str, algorithm: HashAlgorithm) -> HashResult:
"""计算单个文件的指定哈希值"""
if not os.path.exists(file_path):
return HashResult(
file_path=file_path,
algorithm=algorithm,
error=f"文件不存在: {file_path}",
)
if not os.path.isfile(file_path):
return HashResult(
file_path=file_path,
algorithm=algorithm,
error=f"路径不是文件: {file_path}",
)
try:
file_size = os.path.getsize(file_path)
hasher = hashlib.new(algorithm.value)
with open(file_path, "rb") as f:
while True:
data = f.read(BUFFER_SIZE)
if not data:
break
hasher.update(data)
return HashResult(
file_path=file_path,
algorithm=algorithm,
hash_value=hasher.hexdigest(),
file_size=file_size,
)
except PermissionError:
return HashResult(
file_path=file_path,
algorithm=algorithm,
error=f"权限不足,无法读取: {file_path}",
)
except Exception as e:
return HashResult(
file_path=file_path,
algorithm=algorithm,
error=f"计算哈希时出错: {e}",
)
亮点:
- 使用 枚举类 定义支持的算法,类型安全
- 使用 dataclass 封装计算结果,包含成功/失败状态
- 分块读取 大文件(64KB 缓冲区),避免内存溢出
- 完善的异常处理:文件不存在、权限不足、路径错误等场景
命令行入口(cli.py)
import argparse
import sys
import time
from file_hash_checker.hasher import (
ALGORITHM_DISPLAY, HashAlgorithm,
compute_all_hashes, compute_hash,
)
def format_size(size: int) -> str:
"""格式化文件大小为人类可读形式"""
for unit in ["B", "KB", "MB", "GB", "TB"]:
if size < 1024:
return f"{size:.1f} {unit}" if unit != "B" else f"{size} {unit}"
size /= 1024
return f"{size:.1f} PB"
def main() -> None:
parser = argparse.ArgumentParser(
prog="file-hash-checker",
description="文件哈希校验工具 - 支持 MD5、SHA-1、SHA-256",
)
parser.add_argument("files", nargs="+", metavar="FILE",
help="要计算哈希的文件路径(支持多个文件)")
parser.add_argument("-a", "--algorithm",
choices=["md5", "sha1", "sha256", "all"],
default="all",
help="哈希算法(默认: all)")
parser.add_argument("-v", "--version", action="version",
version=f"file-hash-checker {__version__}")
args = parser.parse_args()
# ... 核心逻辑 ...
亮点:
- 使用 argparse 构建专业的命令行界面
- 支持
-a参数灵活选择算法,-v查看版本 - 批量处理 多个文件,逐个输出结果
- 美观的表格输出 使用 Unicode 边框字符
- 统计成功/失败数并设置正确的退出码
运行效果
安装完成后,直接使用命令行运行工具:
# 批量校验多个文件
file-hash-checker README.md setup.py

工具会输出带有美观边框的格式化结果,包含每个文件的 MD5、SHA-1、SHA-256 值及文件大小。
其他用法:
# 仅计算 MD5
file-hash-checker -a md5 myfile.txt
# 仅计算 SHA-256
file-hash-checker -a sha256 myfile.txt
# 测试错误处理
file-hash-checker not_exist.txt
# 输出: ✗ not_exist.txt — 文件不存在: not_exist.txt
能力总结
通过本次实践,码道 TUI 展现了以下能力:
| 能力 | 表现 |
|---|---|
| 需求理解 | 准确理解 6 项需求,自动拆解为 6 个子任务 |
| 代码质量 | 生成的代码结构清晰,使用枚举、dataclass 等 Python 最佳实践 |
| 错误处理 | 覆盖文件不存在、权限不足、路径错误等边界场景 |
| 输出美化 | 使用 Unicode 边框字符实现专业级终端表格输出 |
| 项目完整性 | 包含 README、setup.py、requirements.txt 等完整项目文件 |
| 测试验证 | 自动执行 3 项功能测试,全部通过 |
总结
华为云码道 TUI 让命令行工具开发变得前所未有的简单。你只需要用自然语言描述需求,剩下的代码编写、项目构建、测试验证都由 AI 自动完成。无论是运维脚本、数据处理工具还是开发辅助工具,码道都能快速交付生产级的代码。
对于开发者来说,码道不仅是一个提效工具,更是一个优秀的"结对编程伙伴"—— 它生成的代码遵循最佳实践、考虑边界条件、输出美观,值得学习和参考。
立即体验码道:https://developer.huaweicloud.com/codeartsco.html?source=dmzntgwsf&sourcead=dmzntgwwbwz
项目地址:本文所述 file-hash-checker 项目由码道自动生成,完整源码可在对应工作区中找到。
- 点赞
- 收藏
- 关注作者
评论(0)