python读写csv文件的简单操作

csv模块专门用来读写数据,详情见 python文档

import csv

读文件

  1. reader方法
    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) # 打印每一行,列表类型,只能按位置索引
    

稍微介绍一下next(iterable, [default ])函数,它是python3x内置的,用于遍历可迭代对象的方法,其中iterable可以使字符串、列表、字典、元祖、集合等。若default给出,那么遍历到头时返回这个值,不然就抛异常。
这让我想到了字典的get()方法,它也有类似作用。比如,

# 如果dic里面没有key1这个键,那就返回我们指定的0
dic.get('key1', 0)
  1. DictReader方法
      with open('./data.csv', 'r') as f:
        reader = csv.DictReader(f, delimeter=';')
        for dic in reader:
          print(dic.items()) # 每行按字典返回,按键索引
    

写文件

跟读对应, 写操作也有两个方法

  1. writer方法,适用列表的列表

      with open('./data.csv', 'w') as f:
        header = ['col1', 'col2', ...]
        writer = csv.writer(f)
        writer.writeheader(header)
        for row in row_list:
          writer.writerow(row)
        # 或直接调用
        writer.writerows(row_list)
      
    
  2. DictWriter方法,适用字典列表

     with open('./data.csv', 'w') as f:
       dictwriter = csv.DictWriter(f)
       dictwriter.writeheader(dic_list[0].keys())
       for dic in dic_list:
         writer.writerow(dic)
       # 或者一次性写入,直接调用
         wrier.writerows(dic_list)
       
    

都是些比较基础的操作,在这里记录一下。如果你觉得有帮助,就更好了。

你可能感兴趣的:(python读写csv文件的简单操作)