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。