Python

python操作csv文件

2018-09-30  本文已影响31人  Cassie测试路

说明:因为最近做自动化和压测总涉及到大量数据的读写问题,所以这里记录下

读取csv文件数据

  1. csv.reader(file, delimiter=','),默认读取的每行数据是以逗号分隔(也可以是'\t'),返回:读取的每一条数据是list类型。此方法主要用于csv文件没有指定变量头
  2. csv.DictReader(file, delimiter=','),csv文件的第一行会被识别为变量头,非第一行会被识别为数据并以有序字典OrderedDict的形式返回。此方法主要用于csv文件指定了变量头。
# csv文件,文件有变量头,数据以tab分割
'''
name    password
aa    11
bb    22
'''

import csv
def read_csv():
   # 方式1
    with open(file_path) as file:
        csv_reader = csv.DictReader(file, delimiter='\t')
        for row in csv_reader:
            # 第一行为标题头: name,password
            print(row)        # OrderedDict([('name', 'aa'), ('password', '22')])
            print(row['name'], row['password'])    # 返回:aa bb
      
        # 方式2:
        csv_reader2 = csv.reader(file, delimiter='\t')
        for row2 in csv_reader2:
        #     第一行不会被识别为标题头而是数据
             print(row2)                   # List类型,['name', 'password']
             print(row2[0], row2[1])      # name password

将数据写入csv文件

  1. csv.writer(file, delimiter=','),将列表的每一个元素依次写入csv文件的某行
  2. csv.DictWriter(file, fieldnames, delimiter=','),将dict数据的值依次写入csv文件的某行
def write_csv():
    # 加上newline='',避免以append 方式写入csv 文件时,出现多余的空行
    with open(file_path, 'a', newline='') as file:
        csv_writer = csv.writer(file, delimiter='\t')
        # 将可迭代对象的元素依次写入 csv 文件的同一行
        csv_writer.writerow(["cc", "33"])
       
       # 以字典方式写入
       csv_writer2 = csv.DictWriter(file, fieldnames=['name', 'password'])
        # 将 fieldnames 写入文件
        #csv_writer2.writeheader()
        csv_writer2.writerow({"name": "cc", "password": "33"})
上一篇 下一篇

猜你喜欢

热点阅读