Python中CSV文件的读写操作指南

在Python中,读取和写入CSV文件是非常常见的操作。Python标准库中的csv模块提供了强大的工具来处理CSV文件。下面是如何使用csv模块进行CSV文件的读取和写入操作的示例。

图片[1]_Python中CSV文件的读写操作指南_知途无界

一、读取CSV文件

使用csv.reader

import csv
# 打开CSV文件进行读取
with open('example.csv', mode='r', newline='', encoding='utf-8') as file:
csv_reader = csv.reader(file)
# 迭代CSV文件的每一行
for row in csv_reader:
print(row)
import csv

# 打开CSV文件进行读取
with open('example.csv', mode='r', newline='', encoding='utf-8') as file:
    csv_reader = csv.reader(file)
    
    # 迭代CSV文件的每一行
    for row in csv_reader:
        print(row)
import csv # 打开CSV文件进行读取 with open('example.csv', mode='r', newline='', encoding='utf-8') as file: csv_reader = csv.reader(file) # 迭代CSV文件的每一行 for row in csv_reader: print(row)

说明

  • open函数用于打开CSV文件。mode='r'表示以读取模式打开文件。
  • newline=''参数是为了确保在不同平台上都能正确读取CSV文件。
  • encoding='utf-8'用于指定文件的编码,确保能正确处理包含非ASCII字符的CSV文件。
  • csv.reader对象可以迭代,每次迭代返回一个代表CSV文件一行的列表。

使用DictReader

如果你希望将CSV文件的每一行作为一个字典来处理,可以使用csv.DictReader

import csv
# 打开CSV文件进行读取
with open('example.csv', mode='r', newline='', encoding='utf-8') as file:
csv_reader = csv.DictReader(file)
# 迭代CSV文件的每一行,作为字典返回
for row in csv_reader:
print(row)
import csv

# 打开CSV文件进行读取
with open('example.csv', mode='r', newline='', encoding='utf-8') as file:
    csv_reader = csv.DictReader(file)
    
    # 迭代CSV文件的每一行,作为字典返回
    for row in csv_reader:
        print(row)
import csv # 打开CSV文件进行读取 with open('example.csv', mode='r', newline='', encoding='utf-8') as file: csv_reader = csv.DictReader(file) # 迭代CSV文件的每一行,作为字典返回 for row in csv_reader: print(row)

说明

  • csv.DictReader会自动将CSV文件的第一行作为字典的键,后续行作为字典的值。

二、写入CSV文件

使用csv.writer

import csv
# 要写入CSV文件的数据
data = [
['Name', 'Age', 'City'],
['Alice', 30, 'New York'],
['Bob', 25, 'Los Angeles'],
['Charlie', 35, 'Chicago']
]
# 打开CSV文件进行写入
with open('output.csv', mode='w', newline='', encoding='utf-8') as file:
csv_writer = csv.writer(file)
# 写入数据
for row in data:
csv_writer.writerow(row)
import csv

# 要写入CSV文件的数据
data = [
    ['Name', 'Age', 'City'],
    ['Alice', 30, 'New York'],
    ['Bob', 25, 'Los Angeles'],
    ['Charlie', 35, 'Chicago']
]

# 打开CSV文件进行写入
with open('output.csv', mode='w', newline='', encoding='utf-8') as file:
    csv_writer = csv.writer(file)
    
    # 写入数据
    for row in data:
        csv_writer.writerow(row)
import csv # 要写入CSV文件的数据 data = [ ['Name', 'Age', 'City'], ['Alice', 30, 'New York'], ['Bob', 25, 'Los Angeles'], ['Charlie', 35, 'Chicago'] ] # 打开CSV文件进行写入 with open('output.csv', mode='w', newline='', encoding='utf-8') as file: csv_writer = csv.writer(file) # 写入数据 for row in data: csv_writer.writerow(row)

说明

  • open函数中的mode='w'表示以写入模式打开文件。
  • csv.writer对象的writerow方法用于写入一行数据。

使用DictWriter

如果你希望以字典的形式写入CSV文件,可以使用csv.DictWriter

import csv
# 要写入CSV文件的数据,作为字典列表
data = [
{'Name': 'Alice', 'Age': 30, 'City': 'New York'},
{'Name': 'Bob', 'Age': 25, 'City': 'Los Angeles'},
{'Name': 'Charlie', 'Age': 35, 'City': 'Chicago'}
]
# 获取字典的键作为CSV文件的列名
fieldnames = ['Name', 'Age', 'City']
# 打开CSV文件进行写入
with open('output_dict.csv', mode='w', newline='', encoding='utf-8') as file:
csv_writer = csv.DictWriter(file, fieldnames=fieldnames)
# 写入表头
csv_writer.writeheader()
# 写入数据
for row in data:
csv_writer.writerow(row)
import csv

# 要写入CSV文件的数据,作为字典列表
data = [
    {'Name': 'Alice', 'Age': 30, 'City': 'New York'},
    {'Name': 'Bob', 'Age': 25, 'City': 'Los Angeles'},
    {'Name': 'Charlie', 'Age': 35, 'City': 'Chicago'}
]

# 获取字典的键作为CSV文件的列名
fieldnames = ['Name', 'Age', 'City']

# 打开CSV文件进行写入
with open('output_dict.csv', mode='w', newline='', encoding='utf-8') as file:
    csv_writer = csv.DictWriter(file, fieldnames=fieldnames)
    
    # 写入表头
    csv_writer.writeheader()
    
    # 写入数据
    for row in data:
        csv_writer.writerow(row)
import csv # 要写入CSV文件的数据,作为字典列表 data = [ {'Name': 'Alice', 'Age': 30, 'City': 'New York'}, {'Name': 'Bob', 'Age': 25, 'City': 'Los Angeles'}, {'Name': 'Charlie', 'Age': 35, 'City': 'Chicago'} ] # 获取字典的键作为CSV文件的列名 fieldnames = ['Name', 'Age', 'City'] # 打开CSV文件进行写入 with open('output_dict.csv', mode='w', newline='', encoding='utf-8') as file: csv_writer = csv.DictWriter(file, fieldnames=fieldnames) # 写入表头 csv_writer.writeheader() # 写入数据 for row in data: csv_writer.writerow(row)

说明

  • csv.DictWriter需要指定fieldnames参数,用于定义CSV文件的列名。
  • writeheader方法用于写入表头。

通过以上示例,你可以轻松地在Python中进行CSV文件的读取和写入操作。根据实际需求选择合适的方法来处理CSV文件。

© 版权声明
THE END
喜欢就点个赞,支持一下吧!
点赞82 分享
Judge each day not by the harvest you reap but by the seeds you plant.
不要问自己收获了多少果实,而是要问自己今天播种了多少种子
评论 抢沙发
头像
欢迎您留下评论!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容