import csv
with open('./data.csv', 'r') as f:
reader = csv.reader(f)
# python 2
# header = reader.next()
# python 3x 使用python内置的next
header = next(reader)
#获取真正的数据
for row in reader:
print(row) # 打印每一行,列表类型,只能按位置索引
以上版本一,是python读csv文件并且遍历数据并且打印数据.
1,python写数据到data.csv
import csv
headers = ['class','name','sex','height','year']
rows = [
{'class':1,'name':'xiaoming','sex':'male','height':168,'year':23},
{'class':1,'name':'xiaohong','sex':'female','height':162,'year':22},
{'class':2,'name':'xiaozhang','sex':'female','height':163,'year':21},
{'class':2,'name':'xiaoli','sex':'male','height':158,'year':21},
]
with open('test2.csv','w',newline='')as f:
f_csv = csv.DictWriter(f,headers)
f_csv.writeheader()
f_csv.writerows(rows)
运行结果可以看到如下的结果
2,读出csv数据。
import csv
#没有说明只能读取到第一行
with open('test2.csv','r')as file:
reader = csv.reader(file)
ids = [low[0] for low in reader]
value = [low[2] for low in reader]
print ('ids',ids)
print ('value',value)
#读取多行
id_list = []
value_list = []
with open('test2.csv','r')as file:
reader = csv.reader(file)
lows = [low for low in reader]
ids = [low[0] for low in lows]
value = [low[1] for low in lows]
print ('ids',ids)
print ('value',value)
运行结果如下
3,写入csv数据:
class writer():
def __init__(self):
self.dict={
"标题":"标题",
"链接":"链接",
"服务":"服务",
"dsr":"dsr",
"店铺名":"店铺名",
"价格":"店铺名",
"付款人数":"付款人数",
"发货地":"发货地"
}
out = open("outfile.csv", 'w', newline='')
self.csv_writer = csv.writer(out, dialect='excel')
self.csv_writer.writerow(self.dict)
def writer_to(self,key_value):
self.csv_writer.writerow(key_value)
if __name__ == '__main__':
a=writer()
new={"链接":"http://www.baidu.com",'标题':'我是标题',}
a.dict.update(new)
print(a.dict)
a.writer_to(a.dict.values())
运行结果: