记录维维的每一篇Hello World

16.jpg

数据单行写入

  1. import csv
  2. import random
  3. # 文件名
  4. file_name = "file.csv"
  5. # 生成随机数据
  6. data = [random.random() for i in range(5)]
  7. # 打开文件
  8. file = open(file_name, 'w', newline="", encoding='u-f-8-sig')
  9. # 写入数据
  10. with file:
  11. writer = csv.writer(file)
  12. writer.writerow(data)

数据多行写入

  1. import csv
  2. import random
  3. # 文件名
  4. file_name = "file.csv"
  5. # 设置行列数
  6. row, col = 7, 5
  7. # 生产随机数据
  8. data = [[random.random() for c in range(col)] for r in range(row)]
  9. # 打开文件
  10. file = open(file_name, 'w', newline="", encoding='utf-8-sig')
  11. # 写入数据
  12. with file:
  13. writer = csv.writer(file)
  14. writer.writerows(data)

字典数据单行写入

  1. import csv
  2. # 文件名
  3. file_name = "one.csv"
  4. # 数据
  5. data = {
  6. 'id': '12345',
  7. 'name': '小米'
  8. }
  9. # 打开文件
  10. file = open(file_name, 'w', newline='', encoding='utf-8-sig')
  11. # 写入数据
  12. with file:
  13. writeDict = csv.DictWriter(file, fieldnames=['id', 'name'])
  14. writeDict.writeheader()
  15. writeDict.writerow(data)

字典数据多行写入

  1. import csv
  2. # 文件名
  3. file_name = "one.csv"
  4. # 数据
  5. data1 = {
  6. 'id': '12345',
  7. 'name': '小米'
  8. }
  9. data2 = {
  10. 'id': '67890',
  11. 'name': '小花'
  12. }
  13. # 打开文件
  14. file = open(file_name, 'w', newline='', encoding='utf-8-sig')
  15. # 写入数据
  16. with file:
  17. writeDict = csv.DictWriter(file, fieldnames=['id', 'name'])
  18. writeDict.writeheader()
  19. writeDict.writerows([data1, data2])

读取数据

  1. import csv
  2. # 文件名
  3. file_name = "one.csv"
  4. # 打开文件
  5. file = open(file_name, 'r', newline='', encoding='utf-8-sig')
  6. # 数据读取
  7. with file:
  8. reader = csv.reader(file)
  9. for row in reader:
  10. print(','.join(row))

字典数据读取

  1. import csv
  2. #文件名
  3. file_name = "one.csv"
  4. # 打开文件
  5. file = open(file_name, 'r', newline='', encoding='utf-8-sig')
  6. # 读取数据
  7. with file:
  8. reader = csv.DictReader(file)
  9. for row in reader:
  10. print(row)

注意事项

1、编码必须为utf-8-sig,不然中文会乱码

2、newline默认为换行,改成空字符避免隔一行

3、字典数据写入,字典中有多余键值会报错

python环境

电脑:Windows10

python:3.10.4