当前位置: 首页 > news >正文

什么网站可以做美食网站式小程序

什么网站可以做美食,网站式小程序,企业网站源码搜一品资源,徐州鼓楼区建设网站构建一个Python命令行工具:玩转标准库中的数据处理与日志记录 导语 刚从 iOS 转向 Python 开发的你,可能会被 Python 丰富的标准库惊艳到。本篇博客,我们将围绕 json、csv、re、datetime、collections、argparse 和 logging 等高频标准库&a…

构建一个Python命令行工具:玩转标准库中的数据处理与日志记录

导语

刚从 iOS 转向 Python 开发的你,可能会被 Python 丰富的标准库惊艳到。本篇博客,我们将围绕 jsoncsvredatetimecollectionsargparselogging 等高频标准库,构建一个实用的命令行工具:它能分析文件中的关键词出现情况,并生成清晰的日志记录。这不仅巩固你对标准库的理解,也能为你的 Python 项目开发积累基础能力。


知识点预览

阅读本篇你将掌握:

  • 如何使用 argparse 构建命令行接口

  • 如何读取和处理 jsoncsv 文件

  • 使用 re 正则提取关键词信息

  • 利用 collections.Counter 进行词频统计

  • datetime 时间处理与 logging 日志记录的结合

  • 构建具备实用性的 CLI 工具结构


正文结构

背景介绍:为什么要掌握这些标准库?

Python 的强大很大程度上来源于其标准库的丰富性。在实际开发中,处理文本数据、日志记录、命令行参数解析都是必备技能。相比 iOS 更偏 UI 的开发,Python 更注重数据和脚本实用性,因此构建一个命令行数据处理工具将是你迈向后端或数据处理方向的起点。


技术方案拆解
  • argparse:构建 CLI 参数接口

  • json / csv:读取结构化数据文件

  • re:正则匹配关键词

  • Counter:快速统计词频

  • datetime:生成带时间戳的输出

  • logging:日志记录,便于排查问题


实战步骤讲解:关键词统计 CLI 工具
1. 项目结构
keyword_counter/
├── main.py               # CLI 主程序
├── utils.py              # 工具函数封装
├── sample.json           # 示例输入数据
├── logs/
│   └── run_20250701.log  # 日志文件输出

2. main.py 主入口(使用 argparse 和 logging)
import argparse
import logging
from utils import process_filedef setup_logger():logging.basicConfig(filename=f'logs/run_{__import__("datetime").datetime.now().strftime("%Y%m%d")}.log',level=logging.INFO,format='%(asctime)s - %(levelname)s - %(message)s')def main():parser = argparse.ArgumentParser(description="关键词计数工具")parser.add_argument("filepath", help="文件路径,支持 .json 或 .csv")parser.add_argument("keyword", help="要查找的关键词")args = parser.parse_args()setup_logger()logging.info("程序启动")process_file(args.filepath, args.keyword)logging.info("程序结束")if __name__ == "__main__":main()

3. utils.py 工具函数封装
import json
import csv
import re
from collections import Counter
from pathlib import Path
import loggingdef process_file(filepath, keyword):path = Path(filepath)if not path.exists():logging.error(f"文件不存在: {filepath}")print(f"[错误] 文件不存在:{filepath}")returnlogging.info(f"开始处理文件: {filepath}")if filepath.endswith(".json"):with open(filepath, "r", encoding="utf-8") as f:data = json.load(f)content = json.dumps(data)  # 统一转成字符串处理elif filepath.endswith(".csv"):with open(filepath, "r", encoding="utf-8") as f:reader = csv.reader(f)content = "\n".join([",".join(row) for row in reader])else:logging.error("不支持的文件格式")print("[错误] 只支持 .json 或 .csv 文件")returnmatches = re.findall(fr"\b{re.escape(keyword)}\b", content, flags=re.IGNORECASE)count = Counter(matches)print(f"🔍 在文件中找到 {len(matches)} 次关键词「{keyword}」")logging.info(f"关键词统计完成:{count}")

4. 示例运行(命令行)
python main.py sample.json apple

输出:

🔍 在文件中找到 4 次关键词「apple」

日志文件(logs/run_20250701.log)中:

2025-07-01 14:30:01,123 - INFO - 程序启动
2025-07-01 14:30:01,456 - INFO - 开始处理文件: sample.json
2025-07-01 14:30:01,789 - INFO - 关键词统计完成:Counter({'apple': 4})
2025-07-01 14:30:01,800 - INFO - 程序结束

常见问题与踩坑经验
问题解决方案
UnicodeDecodeError添加 encoding="utf-8" 打开文件
正则匹配大小写不敏感加上 flags=re.IGNORECASE
日志无输出或覆盖旧日志使用时间戳命名日志文件,或配置 filemode='a'
argparse 不生效确保是在 __name__ == "__main__" 中调用

拓展建议或进阶路径
  • 添加文件夹支持:使用 os.walk 递归处理多个文件

  • 增加图表输出:结合 matplotlib 可视化词频统计结果

  • 封装成可执行包:结合 setuptoolspoetry 打包为工具

  • 与日志服务对接:如输出到 ELK 日志平台


总结 & 实用建议

本篇文章带你一次性吃透多个 Python 常用标准库,并通过构建一个实用的命令行关键词统计工具实现落地。对于转型中的开发者而言,这种带实战导向的练习能迅速提升你对 Python 在数据处理、脚本自动化方面的掌控力。

📌 实用建议:

  • 每个标准库都有背后的使用场景,理解 > 死记

  • 推荐把工具封装为可重复使用的组件,逐步构建自己的代码仓库

  • 掌握日志记录,将极大提升你调试和维护 Python 项目的效率

http://www.dtcms.com/a/491334.html

相关文章:

  • 合肥建设网站查询系统游戏网络游戏
  • GraphRAG本地部署 v2.7.0
  • YOLOv1 与 YOLOv2 核心笔记:从单阶段检测开创到性能升级
  • 项目上传到GitHub流程
  • 强化学习入门-2(Dueling DQN)
  • 【第6篇】引入高配大模型
  • 嵌入式计算机AF208:自动化装配管理集成方案核心
  • 五台县建设局网站有ip地址如何做网站
  • 数码产品商城网站建设网上推广赚钱方法
  • 数智时代的软件架构峰会
  • 展板模板网站河东网站建设公司
  • 快手编程大模型真实水平,本地部署,实测
  • 如何在AutoCAD中进行GIS空间查询?
  • 旧电脑变废为宝:打造低成本网络打印机服务器全记录
  • EF Core 导航属性赋值的一种方式
  • 做实验流程图的网站必应搜索引擎入口官网
  • 做那个的网站谁有wordpress用户信息修改
  • VMware虚拟机安装文档
  • 分布式专题——46 ElasticSearch高级查询语法Query DSL实战
  • Spring Boot核心功能深度解析
  • 麒麟系统使用-使用Sublime浏览小说
  • 【2025年10月一区SCI】Experience Exchange Strategy 经验交换策略(EES),优化算法改进新方法!-附Matlab免费代码
  • 渭南建网站如何建立官方网站
  • Azure Cobalt 100 VM:以卓越性能与能效优化云端工作负载
  • 【泛3C篇】AI深度学习在手机背板外观缺陷检测应用方案
  • OpenAI Sora 2 现已在Azure AI Foundry 公共预览中开放
  • 外贸网站推广渠道网站录入
  • **Unreal引擎中的发散创新思维:探索创新与优化之路**随着游戏
  • h5游戏免费下载:电子木鱼
  • h5游戏免费下载:《飞跃的奶酪》