美文网首页Python
python操作csv文件

python操作csv文件

作者: sandy测试路 | 来源:发表于2018-09-30 14:08 被阅读31次

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

    读取csv文件数据

    • 根据csv文件的数据组织,主要有2种方式:
    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文件

    • 根据要写入csv文件的数据格式主要有2种方式:
    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"})
    

    相关文章

      网友评论

        本文标题:python操作csv文件

        本文链接:https://www.haomeiwen.com/subject/lhrwoftx.html