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

【Python 高频 API 速学 ③】

一、为什么先学这 5 个?

• 它们覆盖了「切 → 洗 → 拼 → 换 → 排版」整条链路。
• 任意一段文本处理脚本,80 % 的操作都能用这 5 个方法写完。


二、五虎上将一览

方法作用典型场景易踩的坑
split(sep=None)按分隔符切成列表日志拆字段、CSV 解析连续分隔符会产生空串
strip(chars=None)去首尾空白/指定字符清洗用户输入、去换行只能去首尾,中间不动
join(iterable)用指定字符串把列表拼回去路径拼接、SQL 占位符元素必须全是 str
replace(old, new, count=-1)批量替换子串脱敏、模板渲染默认全部替换,count 可限次
format / f-string格式化输出日志、报表、邮件旧版 % 格式化已过时

三、一行代码场景秀

  1. 把网址参数变字典
params = dict(pair.split('=', 1) for pair in query.strip('&').split('&') if pair)
  1. 清洗并重组文件路径
clean_path = '/'.join(part.strip() for part in raw.split('/') if part)
  1. 日志脱敏:手机号中间四位换成 ****
masked = re.sub(r'(\d{3})\d{4}(\d{4})', r'\1****\2', text)

(先用 replace 也行:text.replace(text[3:7], '****')

  1. 批量生成 SQL 占位符
placeholders = ', '.join(['%s'] * len(columns))
sql = f"INSERT INTO {table} ({', '.join(columns)}) VALUES ({placeholders})"
  1. 模板邮件格式化
body = """
Hi {name},Your order #{order_id} has been shipped on {date}.
""".format(name=name, order_id=oid, date=ship_date)

或更现代的 f-string:

body = f"Hi {name}, your order #{oid} shipped on {ship_date:%Y-%m-%d}"

四、mini 实战:5 行搞定 nginx 日志转 CSV

输入:空格分隔的原始日志行
输出:ip, time, method, url, status, size

import csv, sys
for line in sys.stdin:parts = line.strip().split()csv.writer(sys.stdout).writerow([parts[0], parts[3][1:], parts[5][1:], parts[6], parts[8], parts[9]])

跑一下:

$ tail -n 100 access.log | python log2csv.py > log.csv

五、一条记忆口令

“split 分,strip 洗,join 拼,replace 换,format 美。”

http://www.xdnf.cn/news/1266409.html

相关文章:

  • 信息安全及防火墙总结
  • 【排序算法】②希尔排序
  • 束搜索(Beam Search):原理、演进与挑战
  • AI鉴伪技术:守护数字时代的真实性防线
  • PromptPilot打造高效AI提示词
  • llama-factory代码详解(一)--model_args.py
  • C++实现MATLAB矩阵计算程序
  • 【传奇开心果系列】Flet框架实现的功能丰富设计现代化的管理仪表盘组件自定义模板
  • 掌握长尾关键词SEO优化技巧
  • Redis 持久化策略深度剖析:从原理到实战,守护数据不丢失
  • axios 发请求
  • 制作浏览器CEFSharp133+X86+win7 之 javascript交互(二)
  • C++-AVL树
  • 词向量基础:从独热编码到分布式表示的演进
  • 微软将于 10 月停止混合 Exchange 中的共享 EWS 访问
  • Codeforces 思维训练(二)
  • [激光原理与应用-206]:光学器件 - SESAM - 基本结构与工作原理
  • 爬虫攻防战:反爬与反反爬全解析
  • 跨境电商系统开发:ZKmall开源商城的技术选型与代码规范实践
  • sqli-labs通关笔记-第40关 GET字符型堆叠注入(单引号括号闭合 手工注入+脚本注入两种方法)
  • 多级缓存详解
  • 【能碳建设1】用AI+开源打造物联网+能碳管理+交易SaaS系统的最短路径实施指南
  • 软件定义车辆加速推进汽车电子技术
  • 快速使用selenium+java案例
  • [Linux]学习笔记系列 -- [arm][lds]
  • 2022 RoboCom 世界机器人开发者大赛-本科组(国赛)
  • 前端工程化:从构建工具到性能监控的全流程实践
  • 2G内存的服务器用宝塔安装php的fileinfo拓展时总是卡死无法安装成功的解决办法
  • Ubuntu下搭建LVGL模拟器
  • 【第2.1话:基础知识】基于Ubuntu的ROS环境搭建与车辆可视化编程实践:初学者指南及RVIZ应用(含作业及代码)