当前位置:   article > 正文

【学习心得】Python中CSV文件存储_csv保存到csv

csv保存到csv

(一)Python自带csv库

        Python中内置csv库实现对csv文件的读写

import csv

(二)写入csv

写入csv要用到“写入器” ——> writer

1、一次性写一行(writerow函数)

  1. # 写入操作(一次写一行)(列表写入)
  2. with open('data.csv', 'w', encoding='utf-8-sig') as csvfile: # utf-8-sig让生成的csv文件带有DOM
  3. writer = csv.writer(csvfile) # 生成一个“写手”
  4. writer.writerow(['id', 'name', 'age']) # 一次写一行
  5. writer.writerow(['01', 'xiaodai', 28])
  6. writer.writerow(['02', 'xiaoshizi', 22])

2、一次性写多行(writerows函数)

  1. # 写入操作(一次写多行)(列表写入)
  2. with open('data.csv', 'a') as csvfile:
  3. writer = csv.writer(csvfile, delimiter='+') # delimiter指定分隔符,默认是逗号,这里指定为加号
  4. writer.writerows([
  5. ['id', 'name', 'age'],
  6. ['03', 'xiaopidan', 1],
  7. ['04', 'xiaolajiao', 1],
  8. ])

3、字典数据的写入(DictWriter类)

  1. # 写入操作(一次写一行)(字典写入)
  2. with open('data.csv', 'a', encoding='utf-8-sig') as csvfile: # utf-8可以写入中文
  3. fieldnames = ['id', 'name', 'age'] # 可以将列名单独定义
  4. writer = csv.DictWriter(csvfile, fieldnames=fieldnames) # 创建“写手”的时候就可以传入表头
  5. writer.writerow({
  6. 'id': '05',
  7. 'name': '小呆',
  8. 'age': 28,
  9. })

 4、写入多行字典

  1. # 写入操作(一次写多行)(取消空行)
  2. with open('data.csv', 'a', encoding='utf-8', newline='') as csvfile:
  3. """
  4. 这通常是由于在写入CSV数据时,每行数据之间都会自动添加一个换行符,从而导致出现空行
  5. 要取消数据之间的空行,可以在写入CSV数据时指定newline=''
  6. """
  7. fieldnames = ['id', 'name', 'age']
  8. writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
  9. data = [
  10. {'id': '06', 'name': '小柿子', 'age': 22},
  11. {'id': '07', 'name': '小皮蛋', 'age': 1},
  12. {'id': '08', 'name': '小辣椒', 'age': 1},
  13. ]
  14. writer.writerows(data)

(三)读取csv

读取csv要用到“读取器” ——> reader

  1. with open('data.csv', 'r', encoding='utf-8') as csvfile:
  2. reader = csv.reader(csvfile) # 生成读取器,是一个可迭代对象
  3. for row in reader: # for循环遍历读取
  4. print(row)

(四)常见问题

1、空行问题

原因:这通常是由于在写入CSV数据时,每行数据之间都会自动添加一个换行符,从而导致出现空行

解决方法:要取消数据之间的空行,可以在写入CSV数据时指定newline=''

open('data.csv', 'a', newline='')

2、中文问题

原因:没有指定UTF-8编码

解决方法:encoding='utf-8'

open('data.csv', 'a', encoding='utf-8')

3、CSV乱码问题

原因:Excel默认CSV带有DOM,而创建时没有指定带有DOM

解决方法:在创建一个带DOM的CSV ,传入encoding='utf-8-sig'即可

open('data.csv', 'a', encoding='utf-8-sig')

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/536557
推荐阅读
相关标签
  

闽ICP备14008679号