python的csv文件读写及避免出现空行的方法

使用列表生成csv

>>> import csv
>>> keys=['a','b','c','d']
>>> data=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
>>> with open('data.csv','w') as file:
		writer=csv.writer(file) # 建立csv写入对象
		writer.writerow(keys) # 调用writerow函数写入一行数据
		for row in data:
			writer.writerow(row)

若写入的数据是二维列表,可以使用writerows()方法一次写入多行

>>> with open('data.csv','w') as file:
		writer=csv.writer(file)
		writer.writerow(keys)
		writer.writerows(data)

另外可以发现csv文件每行之间会出现一个空行

vscode显示
-------------------
a,b,c,d

1,2,3,4

5,6,7,8

9,10,11,12

为避免此情况,应当在open文件的时候添加参数newline=’’

>>> with open('data.csv','w',newline='') as file:
	writer=csv.writer(file)
	writer.writerow(keys)
	writer.writerows(data)

字典生成csv

>>> data=[{'a':1,'b':2,'c':3},{'a':4,'b':5,'c':6},{'a':7,'b':8,'c':9}]
>>> fieldnames=['a','b','c'] # 列名列表,即字典的key值列表
>>> with open('data.csv','w',newline='') as file:
	writer=csv.DictWriter(file,fieldnames=fieldnames) # 建立一个字典写入对象,并指定列名fieldnames
	writer.writeheader() # writeheader()生成表头即列名
	writer.writerows(data) # 一次写入多行,也可使用writerow()写入单行

将csv读取为列表

>>> with open('data.csv','r') as file:
		reader=csv.reader(file)
		for row in reader:
			print(row)

		
['a', 'b', 'c']
['1', '2', '3']
['4', '5', '6']
['7', '8', '9']

将csv读取为字典

>>> data=[]
>>> with open('data.csv','r') as file:
		reader=csv.DictReader(file)
		fieldnames=reader.fieldnames
		print(fieldnames)
		for row in reader:
			data.append(dict(row))
		print(data)

	
['a', 'b', 'c']
[{'a': '1', 'b': '2', 'c': '3'}, {'a': '4', 'b': '5', 'c': '6'}, {'a': '7', 'b': '8', 'c': '9'}]
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值