在日常的网络运维工作中,经常会遇到需要处理日志数据、设备清单或监控记录的情况。这些数据往往以CSV格式保存,结构简单又通用。与其手动打开Excel一个个修改,不如用Python的标准库直接处理,省时又准确。
\n\n为什么用标准库?
\nPython自带的csv模块不需要额外安装依赖,脚本拿起来就能跑。对于运维这种讲究稳定和快速响应的场景来说,少一个外部依赖就少一个潜在问题。特别是在生产服务器上,能不动pip就不动。
\n\n读取CSV:几行代码搞定数据提取
\n比如你收到一份交换机IP清单,内容是IP、设备名、位置三列。想把所有IP地址提取出来做连通性检测,可以这样写:
\nimport 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会更直观:
\nimport 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供后续分析:
\nimport 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要是用字典方式写入,可读性更强:
\nimport 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文件,适用于网络运维中的日志处理、设备清单管理等场景,无需第三方依赖,简单高效。"}