如何将列表每行存两个元素到CSV文件,使内存信息位于B列
解决CSV文件列对齐问题的方案
你的问题核心出在数据结构和writerows()的使用逻辑上:原列表是一维扁平结构,writerows()会把每个字符串当作单独一行处理,而且单个字符串没有内部分隔符,所以每行只会占据一个单元格。要实现IP在A列、内存信息在B列的效果,你需要把数据整理成二维结构——每个子列表代表一行,包含IP和对应内存两个元素。
修改后的代码示例
import csv # 避免用list作为变量名,它是Python内置类型,容易引发冲突 data_list = ['52.26.17.68', 'TotalPhysicalMemory : 4294361088', '10.12.15.14', 'TotalPhysicalMemory : 6546534654'] # 将数据两两配对:IP和对应内存信息组成一行数据 rows = zip(data_list[::2], data_list[1::2]) with open('testing.csv', 'w', newline='') as r: writer = csv.writer(r, delimiter='\t') writer.writerows(rows)
关键改动说明
数据分组逻辑:
data_list[::2]:提取列表中索引为0、2、4...的元素(即所有IP地址)data_list[1::2]:提取列表中索引为1、3、5...的元素(即对应的内存信息)zip()会把这两个序列的元素一一配对,生成类似('52.26.17.68', 'TotalPhysicalMemory : 4294361088')的元组,每个元组对应CSV里的一行数据,两个元素分别对应A、B列。
变量名优化:
把原变量名list改成data_list,避免覆盖Python内置的list类型,防止后续代码出现意外错误。
最终效果
生成的CSV文件打开后会呈现预期格式:
| A列(IP地址) | B列(内存信息) |
|---|---|
| 52.26.17.68 | TotalPhysicalMemory : 4294361088 |
| 10.12.15.14 | TotalPhysicalMemory : 6546534654 |
内容的提问来源于stack exchange,提问作者Posteingang
相关产品推荐
相关产品推荐

