介绍
CSV(逗号分隔值)是一种常见的文件格式,用于存储数据。Python中的CSV模块使得读取和写入CSV文件变得非常容易。
读取CSV文件
使用csv.reader()
csv.reader()函数将打开一个CSV文件(将其作为参数传递)并返回一个迭代器对象,该对象可以依次读取CSV文件中的每一行。下面是一个简单的示例,演示如何使用csv.reader()函数读取CSV文件。
假设我们有一个名为‘example.csv’的CSV文件,其内容如下:
name,age,city
John,25,Boston
Kate,30,New York
Tom,28,Chicago
现在我们使用Python代码来读取该CSV文件中的每一行数据,并将其打印出来。
import csv
with open('example.csv') as csv_file:
csv_reader = csv.reader(csv_file)
for row in csv_reader:
print(row)
输出结果如下所示:
['name', 'age', 'city']
['John', '25', 'Boston']
['Kate', '30', 'New York']
['Tom', '28', 'Chicago']
使用csv.DictReader()
csv.DictReader()函数将返回一个迭代器对象,该对象可以依次读取CSV文件中的每一行,并将其转换为Python字典。编写代码如下:
import csv
with open('example.csv', mode='r') as csv_file:
csv_reader = csv.DictReader(csv_file)
for row in csv_reader:
print(row)
输出结果如下所示:
{'name': 'John', 'age': '25', 'city': 'Boston'}
{'name': 'Kate', 'age': '30', 'city': 'New York'}
{'name': 'Tom', 'age': '28', 'city': 'Chicago'}
使用csv.DictReader()函数时,第一行被视为字典的键,并且可以使用这些键访问每行的值。
写入CSV文件
使用csv.writer()
csv.writer()函数用于向CSV文件中写入数据。下面是一个简单的示例,演示了如何使用csv.writer()函数将数据写入CSV文件。
import csv
with open('example.csv', mode='w') as csv_file:
csv_writer = csv.writer(csv_file)
csv_writer.writerow(['name', 'age', 'city'])
csv_writer.writerow(['John', '25', 'Boston'])
csv_writer.writerow(['Kate', '30', 'New York'])
csv_writer.writerow(['Tom', '28', 'Chicago'])
以上代码将向名为‘example.csv’的文件中写入数据。第一个csv_writer.writerow()将写入文件的头,并且随后的三个csv_writer.writerow()将写入数据。 如果在写入文件之前该文件不存在,则将创建该文件。
使用csv.DictWriter()
csv.DictWriter()函数与csv.writer()函数非常相似,但它允许我们以字典的形式写入CSV文件。下面是一个使用csv.DictWriter()函数的简单示例。
import csv
with open('example.csv', mode='w') as csv_file:
fieldnames = ['name', 'age', 'city']
writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'name': 'John', 'age': '25', 'city': 'Boston'})
writer.writerow({'name': 'Kate', 'age': '30', 'city': 'New York'})
writer.writerow({'name': 'Tom', 'age': '28', 'city': 'Chicago'})
在以上代码中,我们定义了一个名为‘fieldnames’的列表,并通过csv.DictWriter()函数的‘fieldnames’参数将其传递到函数中。之后,我们可以简单地使用writer.writerow()函数将数据写入文件。
总结
在Python中,我们可以轻松使用CSV模块读取或写入CSV文件。使用csv.reader()函数或csv.DictReader()函数可以读取CSV文件,而使用csv.writer()或csv.DictWriter()我们可以将数据写入CSV文件。这些函数的使用非常简单,只需要传递参数并调用相应的函数即可。