当前位置:首页 > 行业动态 > 正文

python中csv的用法

Python中的csv模块用于处理CSV文件,支持读取、写入和修改操作。

Python中CSV的用法

CSV简介

CSV(Comma-Separated Values,逗号分隔值)是一种用于存储表格数据的纯文本文件格式,它使用逗号作为字段分隔符,换行符作为记录分隔符,CSV文件可以由任意数量的记录组成,每个记录可以包含相同的字段,CSV文件通常用于在不同程序之间导入和导出数据。

Python中CSV模块

Python中提供了一个名为csv的内置模块,用于处理CSV文件,这个模块提供了一些函数和类,使得读取和写入CSV文件变得更加简单。

1、读取CSV文件

要读取CSV文件,可以使用csv模块中的reader函数,这个函数接受一个文件对象作为参数,并返回一个可迭代的对象,可以逐行读取CSV文件中的数据。

示例代码:

import csv
with open('example.csv', 'r') as csvfile:
    reader = csv.reader(csvfile)
    for row in reader:
        print(row) 

2、写入CSV文件

要写入CSV文件,可以使用csv模块中的writer函数,这个函数接受一个文件对象作为参数,并返回一个可调用的对象,可以逐行写入CSV文件。

示例代码:

import csv
data = [['Name', 'Age', 'City'],
        ['Alice', 30, 'New York'],
        ['Bob', 28, 'San Francisco']]
with open('output.csv', 'w') as csvfile:
    writer = csv.writer(csvfile)
    for row in data:
        writer.writerow(row) 

3、处理带引号的字段

CSV文件中的字段可能包含逗号或者换行符,这时候需要用引号将字段括起来,csv模块提供了QUOTE_ALL常量,可以用来处理这种情况。

示例代码:

import csv
with open('example_with_quotes.csv', 'r') as csvfile:
    reader = csv.reader(csvfile, quoting=csv.QUOTE_ALL)
    for row in reader:
        print(row) 

相关问题与解答

1、如何在Python中读取一个非标准的CSV文件(使用制表符作为分隔符)?

答:可以使用csv.Sniffer类来自动检测分隔符,然后使用csv.readercsv.DictReader来读取文件。

示例代码:

import csv
with open('example.tsv', 'r') as csvfile:
    dialect = csv.Sniffer().sniff(csvfile.read())
    reader = csv.reader(csvfile, dialect)
    for row in reader:
        print(row) 

2、如何在Python中将字典写入CSV文件?

答:可以使用csv.DictWriter类来实现这个功能。

示例代码:

import csv
data = [{'Name': 'Alice', 'Age': 30, 'City': 'New York'},
        {'Name': 'Bob', 'Age': 28, 'City': 'San Francisco'}]
with open('output.csv', 'w') as csvfile:
    fieldnames = ['Name', 'Age', 'City']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writeheader()
    for row in data:
        writer.writerow(row) 

3、如何读取一个CSV文件的部分行?

答:可以使用Python的切片操作来实现这个功能。

示例代码:

import csv
with open('example.csv', 'r') as csvfile:
    reader = csv.reader(csvfile)
    for i, row in enumerate(reader):
        if i < 5:   只读取前5行
            print(row)
        else:
            break 

4、如何处理带有非规字符的CSV文件?

答:可以使用error_bad_lines参数来跳过包含非规字符的行。

示例代码:

import csv
with open('example_with_illegal_chars.csv', 'r') as csvfile:
    reader = csv.reader(csvfile, error_bad_lines=False)
    for row in reader:
        print(row) 
0