python怎么写多列长度不等的csv⽂件
我们在⽤python中的csv模块写⼊数据时,会遇到多列长度不同的数据若直接把多列数据写⼊会导致最终的数据列表对齐到最短数据列的情况,如以下代码所⽰:
若按照如下代码得到的csv⽂件只会按照最短的⼀列数据去对齐
python怎么读csv数据import csv
#定义三个列表数据
name1=['Tim','Jim','alex','Tom','Tina']
name2=['Jack','Mike','Nike','Bill']
relationship=['friend','enemy']
with open('fe.csv','w', newline='')as csvfile:
writer = csv.writer(csvfile, delimiter=',')
# 定义表头
header =['name1','name2','relationship']
writer.writerow(header)
writer.writerows(zip(name1, name2,relationship))
得到csv⽂件如下图
其实只要我们将所有数据列⽤空字符扩充到相同的长度,就可以实现不丢失数据的写⼊,具体代码如下:
import csv
#定义三个列表数据
name1=['Tim','Jim','alex','Tom','Tina']
name2=['Jack','Mike','Nike','Bill']
relationship=['friend','enemy']
print(name1,name2,relationship)
#得到最长列表长度,并向列表中加⼊空字符元素使所有列表长度相等
max_len=max(len(name1),len(name2),len(relationship))
add_name1=max_len-len(name1)
add_name2=max_len-len(name2)
add_relationship=max_len-len(relationship)
#向列表尾添加空字符元素
print(name1,name2,relationship)
with open('fe.csv','w', newline='')as csvfile:
writer = csv.writer(csvfile, delimiter=',')
# 定义表头
header =['name1','name2','relationship']
writer.writerow(header)
writer.writerows(zip(name1, name2,relationship))
得到的结果如下

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。