python使用内置的csv模块简单处理CSV文件

1. 读取CSV文件

  • reader()读取
# author:mlnt
# createdate:2022/8/16

import csv  # 导入csv模块

filename = 'data.csv'
# 1.打开CSV文件
with open(file=filename) as csvFile:
    # 2.创建reader对象
    csvReader = csv.reader(csvFile)
    # 以循环方式列出对象内容
    for row in csvReader:
        print(f'Row {csvReader.line_num}: {row}')

data.csv:
在这里插入图片描述
输出效果:
在这里插入图片描述

  • DictReader()读取
import csv

filename = 'data.csv'
with open(file=filename) as csvFile:    # 打开csv文件
    csvDictReader = csv.DictReader(csvFile)   # 创建DictReader对象,返回排序字典类型
    for row in csvDictReader:
        print(row)

输出效果:
在这里插入图片描述

2. 写入CSV文件

import csv

# 1.打开欲写入的文件,不存在则自动创建
with open(file='test.csv', mode='w', newline='') as csvFile:
    # 2.创建writer对象
    csvWriter = csv.writer(csvFile)
    rows = [
        ['Name', 'Age', 'City'],
        ['Tom', 18, 'Beijing'],
        ['Jack', 23, 'New York'],
        ['Jane', 22, 'London'],
        ['James', 25, 'Paris'],
        ['Thain', 30, 'San Francisco']
    ]
    # writerows()
    csvWriter.writerows(rows)

test.csv:
在这里插入图片描述

3. 复制CSV文件

# author:mlnt
# createdate:2022/8/16

import csv

filename = 'test.csv'
output_file  = 'out_test.csv'

with open(file=filename) as csvFile:  # 以读方式打开
    csvReader = csv.reader(csvFile)  # 创建reader对象
    content = list(csvReader)  # 将数据转成列表

with open(file=output_file, mode='w', newline='') as csvFile2:
    csvWriter = csv.writer(csvFile2)
    # writerows()适用于迭代对象嵌套,如列表中的元素为列表
    csvWriter.writerows(content)
    # for row in content:
    #     csvWriter.writerow(row)

out_test.csv:
在这里插入图片描述

4. delimiter关键词

在writer()方法使用,用于更改各列之间的分隔符(默认是逗号)。

# author:mlnt
# createdate:2022/8/16
"""
delimiter是分隔符,在writer()方法使用,用于更改各列之间的分隔符(默认是逗号)
"""
import csv

filename = 'test2.csv'
with open(file=filename, mode='w', newline='') as csvFile:  # 打开csv文件
    csvWriter = csv.writer(csvFile, delimiter='\t')  # 将分隔符修改为'\t'
    csvWriter.writerow(['Name', 'Age', 'City'])
    csvWriter.writerow(['Tom', 17, 'New York'])
    csvWriter.writerow(['Peter', 25, 'London'])
    csvWriter.writerow(['Joker', 28, 'Tokyo'])

效果:
在这里插入图片描述

5. 写入字典数据DictWriter()

# author:mlnt
# createdate:2022/8/16
"""
dicWriter = csv.DictWriter(csvFile, fieldnames=fields)
"""
import csv

filename = 'test3.csv'
with open(file=filename, mode='w', newline='') as csvFile:  # 打开csv文件
    fields = ['Name', 'Age', 'City']  # 键名
    dictWriter = csv.DictWriter(csvFile, fieldnames=fields)  # 创建DictWriter对象
    dictWriter.writeheader()  # 写入fieldnames
    dictWriter.writerow({'Name': 'Toms', 'Age': 27, 'City': 'New York'})
    dictWriter.writerow({'Name': 'Peter', 'Age': 26, 'City': 'London'})
    dictWriter.writerow({'Name': 'Joker', 'Age': 32, 'City': 'Tokyo'})

保存效果:
在这里插入图片描述
可改写成:

# author:mlnt
# createdate:2022/8/16
"""
dicWriter = csv.DictWriter(csvFile, fieldnames=fields)
"""
import csv

filename = 'test3.csv'
# 定义列表,里面的元素为字典
dictList = [
    {'Name': 'Toms', 'Age': 27, 'City': 'New York'},
    {'Name': 'Peter', 'Age': 26, 'City': 'London'},
    {'Name': 'Joker', 'Age': 32, 'City': 'Tokyo'}
]
with open(file=filename, mode='w', newline='') as csvFile:  # 打开csv文件
    fields = ['Name', 'Age', 'City']  # 键名
    dictWriter = csv.DictWriter(csvFile, fieldnames=fields)  # 创建DictWriter对象
    dictWriter.writeheader()  # 写入fieldnames
    # 写入内容
    dictWriter.writerows(dictList)

参考:


版权声明:本文为username666原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。