当前位置: 首页 > 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.dtcms.com/a/322857.html

相关文章:

  • 优化器:SGD、Adam、RMSprop等优化算法对比与机器翻译应用
  • 99-基于Python的京东手机数据分析及预测系统
  • I2CHAL库接口
  • c++ opencv调用yolo onnx文件
  • 用天气预测理解分类算法-从出门看天气到逻辑回归
  • SymPy 表达式的变量获取:深入理解与正确实践
  • 对数运算法则(rule of logarithmic operations)和对应导数关系
  • 带冷端补偿的热电偶采集方案MAX31855
  • Python(6) -- 数据容器
  • 《原型链的柔性骨架:JavaScript面向对象架 构的动态设计与演化逻辑》
  • 【线性代数】线性方程组与矩阵——(1)线性方程组与矩阵初步
  • Python中的Lambda函数详解
  • 北京JAVA基础面试30天打卡05
  • PowerShell 实战:第 6 章动手实验全攻略(含命令详解与示例)
  • Ubuntu和Windows系统Kafka配置方法
  • 模式组合应用-适配器模式
  • 光伏面板损伤检出率↑91%!陌讯多模态识别算法在无人机巡检的落地实践
  • 基于clodop和Chrome原生打印的标签实现方法与性能对比
  • 深入理解Maven BOM
  • 基于MATLAB的Halo轨道设计与可视化实现
  • [SC]SystemC 常见的编译/语法错误与解法(三)
  • PDF 转 HTML API 数据接口
  • 在Spring Boot项目中如何动态切换数据源、数据库?
  • Redis分布式锁详解:原理、实现与实战案例
  • 【C++11新特性】智能指针,右值引用,移动语义与完美转发,函数对象...
  • Linux运维新手的修炼手扎之第27天
  • pyqt5 ECU编辑demo
  • NX二次开发——面有关的函数
  • 1.2.3 迅猛发展期(2020年至今)
  • 让大模型 “睡觉”:把版本迭代当作人类睡眠来设计(附可直接改造的训练作息表与代码)