知用网
第二套高阶模板 · 更大气的阅读体验

用Python标准库轻松读写CSV文件(实用技巧版)

发布时间:2026-01-05 17:41:16 阅读:48 次
{"title":"用Python标准轻松读写CSV文件","content":"

在日常的网络运维工作中,经常会遇到需要处理日志数据、设备清单或监控记录的情况。这些数据往往以CSV格式保存,结构简单又通用。与其手动打开Excel一个个修改,不如用Python的标准库直接处理,省时又准确。

\n\n

为什么用标准库?

\n

Python自带的csv模块不需要额外安装依赖,脚本拿起来就能跑。对于运维这种讲究稳定和快速响应的场景来说,少一个外部依赖就少一个潜在问题。特别是在生产服务器上,能不动pip就不动。

\n\n

读取CSV:几行代码搞定数据提取

\n

比如你收到一份交换机IP清单,内容是IP、设备名、位置三列。想把所有IP地址提取出来做连通性检测,可以这样写:

\n
import csv\n\nwith open('switches.csv', mode='r', encoding='utf-8') as file:\n    reader = csv.reader(file)\n    next(reader)  # 跳过标题行\n    for row in reader:\n        ip = row[0]\n        print(f"正在检查 {ip} 的连通性...")
\n\n

如果原始文件带列名,用DictReader会更直观:

\n
import csv\n\nwith open('switches.csv', mode='r', encoding='utf-8') as file:\n    reader = csv.DictReader(file)\n    for row in reader:\n        if row['位置'] == '机房A':\n            print(row['IP'])
\n\n

写入CSV:自动化报表生成不求人

\n

假设你写了个脚本批量测试服务器响应时间,想把结果存成CSV供后续分析:

\n
import csv\n\nresults = [\n    ['192.168.1.10', 'up', '45ms'],\n    ['192.168.1.11', 'down', '-'],\n    ['192.168.1.12', 'up', '67ms']\n]\n\nwith open('ping_report.csv', mode='w', encoding='utf-8', newline='') as file:\n    writer = csv.writer(file)\n    writer.writerow(['IP地址', '状态', '响应时间'])\n    writer.writerows(results)
\n\n

注意newline=''这个参数,在Windows上容易多出空行,加上它就干净了。

\n\n

要是用字典方式写入,可读性更强:

\n
import csv\n\nwith open('service_status.csv', mode='w', encoding='utf-8', newline='') as file:\n    fieldnames = ['服务名', '主机', '状态']\n    writer = csv.DictWriter(file, fieldnames=fieldnames)\n    \n    writer.writeheader()\n    writer.writerow({'服务名': 'nginx', '主机': 'web01', '状态': 'running'})\n    writer.writerow({'服务名': 'mysql', '主机': 'db01', '状态': 'stopped'})
\n\n

运维不是开发,但懂点代码能让重复工作变得安静无声。标准库里的csv模块就像一把螺丝刀,小巧、可靠,关键时刻拧得动螺丝。”,”keywords”:“标准库,读写csv文件,python运维,csv模块,网络自动化”,"seo_title":"Python标准库读写CSV文件实战指南","seo_description":"介绍如何使用Python标准库中的csv模块读写CSV文件,适用于网络运维中的日志处理、设备清单管理等场景,无需第三方依赖,简单高效。"}