当前位置: 技术文章>> 100道python面试题之-如何在Python中处理CSV文件?

文章标题:100道python面试题之-如何在Python中处理CSV文件?
  • 文章分类: 后端
  • 8677 阅读

在Python中处理CSV(逗号分隔值)文件是一个常见的任务,特别是在数据分析和数据处理领域。Python的内置csv模块提供了丰富的功能来读取和写入CSV文件。以下是处理CSV文件的基本步骤和一些示例代码。

读取CSV文件

使用csv.readercsv.DictReader类来读取CSV文件。csv.reader返回一个生成器,该生成器逐行产生元组(每行一个),而csv.DictReader则产生一个字典的迭代器,其中字典的键是CSV文件第一行的列名。

示例:使用csv.reader

import csv

with open('example.csv', mode='r', newline='', encoding='utf-8') as file:
    csv_reader = csv.reader(file)
    for row in csv_reader:
        print(row)  # row是一个元组

示例:使用csv.DictReader

import csv

with open('example.csv', mode='r', newline='', encoding='utf-8') as file:
    csv_reader = csv.DictReader(file)
    for row in csv_reader:
        print(row)  # row是一个字典

写入CSV文件

使用csv.writercsv.DictWriter类来写入CSV文件。csv.writer接受一个文件对象,并返回一个写入器对象,用于将元组写入CSV文件。csv.DictWriter接受一个文件对象和一个字段名列表,允许你以字典的形式写入行。

示例:使用csv.writer

import csv

rows = [
    ['Name', 'Age', 'City'],
    ['Alice', 24, 'New York'],
    ['Bob', 19, 'Los Angeles']
]

with open('output.csv', mode='w', newline='', encoding='utf-8') as file:
    csv_writer = csv.writer(file)
    csv_writer.writerows(rows)

示例:使用csv.DictWriter

import csv

fieldnames = ['Name', 'Age', 'City']
rows = [
    {'Name': 'Alice', 'Age': 24, 'City': 'New York'},
    {'Name': 'Bob', 'Age': 19, 'City': 'Los Angeles'}
]

with open('output_dict.csv', mode='w', newline='', encoding='utf-8') as file:
    csv_writer = csv.DictWriter(file, fieldnames=fieldnames)
    csv_writer.writeheader()  # 写入标题行
    csv_writer.writerows(rows)

注意事项

  • 总是使用with语句来打开文件,以确保文件在操作完成后正确关闭。
  • newline=''参数在打开文件时非常重要,它可以防止在写入CSV文件时产生额外的空行。
  • 在读取或写入文件时,确保正确设置文件的编码(如encoding='utf-8'),以避免编码错误。
  • 当你处理大量数据时,考虑使用csv.readercsv.writernext()方法或迭代器来逐行处理数据,以节省内存。

通过掌握这些基础知识,你可以有效地在Python中处理CSV文件。

推荐文章