Python 打开 CSV 文件

Python 打开 CSV 文件

CSV 文件(Comma-Separated Values,逗号分隔值)是一种常见的文件格式,通常用于存储表格数据。Python 中有许多库可用于读写 CSV 文件,本文将介绍如何使用 Python 打开 CSV 文件并读取其中的数据。

CSV 文件格式

CSV 文件是由多行数据组成的文本文件,每行数据由逗号、制表符或其他分隔符分隔开。文件的第一行通常包含各列的标题,后面的行则是各列的数据。

以下是一个简单的 CSV 文件示例,包含三列数据:

Name,Age,Gender
Tom,25,Male
Lucy,24,Female

读取 CSV 文件

Python 的 csv 模块提供了一种简单的方法来读取和处理 CSV 文件。首先,我们需要导入 csv 模块:

import csv

读取整个 CSV 文件

要读取整个 CSV 文件,我们可以使用 csv.reader 对象。

import csv

with open('filename.csv', newline='') as csvfile:
    csvreader = csv.reader(csvfile)
    for row in csvreader:
        print(row)

上面的代码将打开一个名为 filename.csv 的文件并读取其中的所有行。csvreader 对象将每一行数据转换为一个列表,列表中的元素是逗号分隔的值。

请注意,我们使用了 newline=” 参数来避免双重换行符的问题。

读取特定行

要读取特定的行,我们可以使用 next() 函数将 csvreader 对象从文件的起始位置移到指定的行。

import csv

with open('filename.csv', newline='') as csvfile:
    csvreader = csv.reader(csvfile)
    # 移动到第二行
    next(csvreader)
    # 读取第三行
    row = next(csvreader)
    print(row)

上面的代码演示了如何读取文件中的第三行数据(即 Lucy,24,Female)。

指定分隔符和引用符

有些 CSV 文件使用非逗号分隔符或引用符来表示数据中的分隔符。在这种情况下,我们需要指定分隔符和引用符参数。

import csv

with open('filename.csv', newline='') as csvfile:
    csvreader = csv.reader(csvfile, delimiter=';', quotechar='"')
    for row in csvreader:
        print(row)

上面的代码将打开一个名为 filename.csv 的文件,并指定分隔符为分号,引用符为双引号。

写入 CSV 文件

与读取 CSV 文件类似,Python 的 csv 模块也提供了一种简单的方法来写入 CSV 文件。

import csv

rows = [
    ['Tom', 25, 'Male'],
    ['Lucy', 24, 'Female'],
    ['John', 30, 'Male']
]

with open('filename.csv', 'w', newline='') as csvfile:
    csvwriter = csv.writer(csvfile)
    csvwriter.writerow(['Name', 'Age', 'Gender'])
    for row in rows:
        csvwriter.writerow(row)

上面的代码将打开一个名为 filename.csv 的文件,并将数据写入其中。我们首先使用 csvwriter.writerow() 方法写入文件的第一行数据(即标题行),然后使用 for 循环依次写入每一行数据。

除了 csv.writer() 方法外,csv 模块还提供了 csv.DictWriter() 方法,用于将字典数据写入 CSV 文件。

import csv

rows = [
    {'Name': 'Tom', 'Age': 25, 'Gender': 'Male'},
    {'Name': 'Lucy', 'Age': 24, 'Gender': 'Female'},
    {'Name': 'John', 'Age': 30, 'Gender': 'Male'}
]

with open('filename.csv', 'w', newline='') as csvfile:
    fieldnames = ['Name', 'Age', 'Gender']
    csvwriter = csv.DictWriter(csvfile, fieldnames=fieldnames)
    csvwriter.writeheader()
    forrow in rows:
        csvwriter.writerow(row)

上面的代码与之前的示例相似,不同之处在于我们使用了 csv.DictWriter() 方法,并将数据保存在一个字典列表中。

总结

Python 的 csv 模块提供了一种方便的方法来读写 CSV 文件。通过使用 csv.reader 和 csv.writer 对象,我们可以轻松地读取和写入 CSV 文件中的数据。

要读取 CSV 文件,我们可以使用 csv.reader 对象并迭代其中的行。通过设置正确的分隔符和引用符,我们可以处理包含非逗号分隔符的文件。

要写入 CSV 文件,我们可以使用 csv.writer 或 csv.DictWriter 对象。csv.DictWriter 对象还允许我们将字典数据写入 CSV 文件中。

有关 csv 模块的更多详细信息,请参阅官方文档:https://docs.python.org/3/library/csv.html

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程