Python操作CSV文件:读取与解析

需积分: 49 47 下载量 174 浏览量 更新于2024-09-08 1 收藏 60KB PPTX 举报
"Python处理csv文件,包括读取和遍历CSV文件中的数据。" CSV文件是一种常见的数据存储格式,特别是在数据分析和数据交换中。它使用逗号作为默认的字段分隔符,但也可以根据需要使用其他字符,如制表符。Python提供了内置的`csv`模块来方便地读取、写入和处理这些文件。 在Python中,读取CSV文件的核心是使用`csv.reader()`函数。这个函数接受一个已打开的文件对象,并返回一个迭代器,即`Reader`对象,可以逐行遍历CSV文件。以下是一个简单的例子: ```python import csv # 打开CSV文件 with open('usercsv.csv', 'r') as csv_file: # 创建Reader对象 reader = csv.reader(csv_file) # 将Reader对象转换为列表,以便访问行数据 rows = list(reader) # 打印所有行 for row_index, row in enumerate(rows): print(f'Row #{row_index + 1}: {row}') ``` 在上述代码中,`with open...`语句确保文件在使用后会被正确关闭。`csv.reader(csv_file)`创建了Reader对象,然后`list(reader)`将整个文件内容转换为一个二维列表,每一行是一个列表。通过`enumerate()`函数,我们可以获取到行的索引和行数据。 如果CSV文件包含带有引号的字段(例如,包含逗号的字符串),`csv.reader()`会正确处理这些情况,保持数据的完整性。默认情况下,`csv.reader()`使用逗号作为字段分隔符,但你可以通过设置`delimiter`参数来更改分隔符,例如使用制表符: ```python reader = csv.reader(csv_file, delimiter='\t') ``` 对于更复杂的操作,比如处理有头部的CSV文件或指定特定的列,可以使用`csv.DictReader()`,它将每一行转换为字典,便于通过键(列名)访问数据: ```python import csv with open('usercsv.csv', 'r') as csv_file: fieldnames = ['编号', '姓名', '数据'] # CSV文件的列名 reader = csv.DictReader(csv_file, fieldnames=fieldnames) for row in reader: print(f'编号: {row["编号"]}, 姓名: {row["姓名"]}, 数据: {row["数据"]}') ``` 在写入CSV文件时,可以使用`csv.writer()`或`csv.DictWriter()`。`csv.writer()`接受一个二维列表,而`csv.DictWriter()`则接受一个包含字典的列表。两者都需要提供列名(除非文件已有头行)。 Python的`csv`模块提供了灵活且高效的处理CSV文件的能力,无论是在数据导入、导出还是分析过程中,都是一个非常实用的工具。通过理解如何创建和使用`csv.reader()`和`csv.writer()`,开发者可以轻松地处理各种CSV数据。