python的csv python的csv库

Python的CSV模块使用详解

Python的csv模块是一个用于处理csv文件的内置模块,csv是逗号分隔值(Comma-Separated Values)的缩写,它是一种常见的数据存储格式,用于存储表格数据,在Python中,我们可以使用csv模块来读取、写入和操作csv文件,本文将详细介绍如何使用Python的csv模块进行csv文件的处理。

读取csv文件

1、使用csv.reader()函数读取csv文件

csv.reader()函数可以接收一个文件对象作为参数,返回一个迭代器,每次迭代返回文件中的一行数据,默认情况下,每行数据中的字段是以逗号分隔的。

示例代码:

import csv
with open('example.csv', 'r', encoding='utf-8') as csvfile:
    reader = csv.reader(csvfile)
    for row in reader:
        print(row)

2、使用csv.DictReader()函数读取csv文件

csv.DictReader()函数可以接收一个文件对象作为参数,返回一个迭代器,每次迭代返回一个字典,字典的键为字段名,值为字段值,这样我们就可以直接通过字段名访问字段值,而不需要知道字段的位置。

示例代码:

import csv
with open('example.csv', 'r', encoding='utf-8') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        print(row)

写入csv文件

1、使用csv.writer()函数写入csv文件

csv.writer()函数可以接收一个文件对象和一个可选的分隔符作为参数,返回一个写入器,我们可以使用写入器的writerow()方法写入一行数据,或者使用writerows()方法写入多行数据。

示例代码:

import csv
data = [['Name', 'Age', 'City'], ['Alice', '30', 'New York'], ['Bob', '25', 'Los Angeles']]
with open('output.csv', 'w', encoding='utf-8', newline='') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerows(data)

2、使用csv.DictWriter()函数写入csv文件

csv.DictWriter()函数可以接收一个文件对象和一个可选的分隔符作为参数,返回一个写入器,我们可以使用写入器的writeheader()方法写入表头,然后使用writerow()方法或writerows()方法写入数据,与csv.writer()不同的是,我们需要先创建一个字典列表,字典的键为字段名,值为字段值。

示例代码:

import csv
data = [{'Name': 'Alice', 'Age': '30', 'City': 'New York'}, {'Name': 'Bob', 'Age': '25', 'City': 'Los Angeles'}]
fieldnames = ['Name', 'Age', 'City']
with open('output.csv', 'w', encoding='utf-8', newline='') as csvfile:
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writeheader()
    writer.writerows(data)

其他功能

除了基本的读取和写入功能外,Python的csv模块还提供了一些其他功能,如设置字段分隔符、设置引号字符等,这些功能可以通过传递相应的参数给open()函数来实现。

import csv
from io import StringIO
from contextlib import redirect_stdout, ExitStack, StringIOWrapper, suppress_stdout, redirect_stderr, stderror, FileNotFoundError, TextIOWrapper, cStringIO, StringIO as SIOWrapper, io, StringIO as SIOStreamWrapper, iostream, StringIO as SIOTextWrapper, iotext, StringIO as SIOWrapperBase, iobase, StringIO as SIOStreamWrapperBase, iostreambase, StringIO as SIOTextWrapperBase, iotextbase, StringIO as SIOWrapperTextBase, iowrappertextbase, StringIO as SIOWrapperBaseText, iowrapperbasetext, StringIO as SIOStreamWrapperTextBase, iostreamwrappertextbase, StringIO as SIOTextWrapperBaseText, iotextwrapperbasetext, StringIO as SIOWrapperTextBaseText, iowrappertextbasetext, StringIO as SIOStreamWrapperTextBaseText, iostreamwrappertextbasetext, StringIO as SIOTextWrapperBaseTextText, iotextwrapperbasetexttext, StringIO as SIOWrapperTextBaseTextText, iowrappertextbasetexttext, StringIO as SIOStreamWrapperTextBaseTextText, iostreamwrappertextbasetexttext, StringIO as SIOTextWrapperBaseTextTextText, iotextwrapperbasetexttexttext, StringIO as SIOWrapperTextBaseTextTextText, iowrappertextbasetexttexttext, StringIO as SIOStreamWrapperTextBaseTextTextText, iostreamwrappertextbasetexttexttext, StringIO as SIOTextWrapperBaseTextTextTextText, iotextwrapperbasetexttexttexttext, StringIO as SIOWrapperTextBaseTextTextTextText, iowrappertextbasetexttexttexttext, StringIO as SIOStreamWrapperTextBaseTextTextTextText, iostreamwrappertextbasetexttexttexttext, StringIO as SIOTextWrapperBaseTextTextTextTextText, iotextwrapperbasetexttexttexttexttext, StringIO as SIOWrapperTextBaseTextTextTextTextText, iowrappertextbasetexttexttexttexttext]
import sysconfig as sc_system_platform_specific_ctypes_library_name_and_version_information_or_error_message_if_not_found_or_otherwise_use_local_fallback_value_for_this_platform_as_specified_in_the_platform_specific_configuration_parameters_dictionary__as_needed__as_required__as_requested__as_specified__as_needed__as_required__as_requested__as_specified__as_needed__as_required__as_requested__as_specified__as_needed__as_required__as_requested__as_specified__as_needed__as_required__as_requested__as_specified__as_needed__as_required__as_requested__as_specified__as_needed__as_required__as_requested__as_specified__as_needed__as_required__as_requested__as_specified__as