python 中csv怎么用_python中CSV模块的使用

Python 的 CSV模块的使用方法,包括,reader, writer, DictReader, DictWriter.register_dialect

一直非常喜欢python的csv模块,简单易用,经常在项目中使用,现在举几个例子说明一下。

reader(csvfile[, dialect='excel'][, fmtparam])

参数表:

csvfile

需要是支持迭代(Iterator)的对象,并且每次调用next方法的返回值是字符串(string),通常的文件(file)对象,或者列表(list)对象都是适用的,如果是文件对象,打开是需要加"b"标志参数。

dialect

编码风格,默认为excel方式,也就是逗号(,)分隔,另外csv模块也支持excel-tab风格,也就是制表符(tab)分隔。其它的方式需要自己定义,然后可以调用register_dialect方法来注册,以及list_dialects方法来查询已注册的所有编码风格列表。

fmtparam

格式化参数,用来覆盖之前dialect对象指定的编码风格。

例子:

import csv

reader = (file('your.csv', 'rb'))

for line in reader:

print line

writer(csvfile[, dialect='excel'][, fmtparam])

参数表(略: 同reader, 见上)

例子:

import csv

writer = (file('your.csv', 'wb'))

(['Column1', 'Column2', 'Column3'])

lines = [range(3) for i in range(5)]

for line in lines:

writer.writerow(line)

1. 写入并生成csv文件

代码:

# coding: utf-8

import csv

csvfile = file('csv_test.csv', 'wb')

writer = csv.writer(csvfile)

writer.writerow(['姓名', '年龄', '电话'])

data = [

('小河', '25', '1234567'),

('小芳', '18', '789456')

]

writer.writerows(data)

csvfile.close()

wb中的w表示写入模式,b是文件模式

写入一行用writerow

多行用writerows

2. 读取csv文件

代码:

# coding: utf-8

import csv

csvfile = file('csv_test.csv', 'rb')

reader = csv.reader(csvfile)

for line in reader:

print line

csvfile.close()

运行结果:

root@he-desktop:~/python/example# python read_csv.py

['\xe5\xa7\x93\xe5\x90\x8d', '\xe5\xb9\xb4\xe9\xbe\x84', '\xe7\x94\xb5\xe8\xaf\x9d']

['\xe5\xb0\x8f\xe6\xb2\xb3', '25', '1234567']

['\xe5\xb0\x8f\xe8\x8a\xb3', '18', '789456']

打印发行日期及标题,逐行处理:

1

2

3

for linein open("samples/sample.csv"):

title, year, director= line.split(",")

print year, title

使用csv模块处理:

1

2

3

4

import csv

reader= csv.reader(open("samples/sample.csv"))

for title, year, directorin reader:

print year, title

改变分隔符

创建一csv.excel的子类,并修改分隔符为”;”

1

2

3

4

5

6

7

8

9

10

# File: csv-example-2.py

import csv

class SKV(csv.excel):

# like excel, but uses semicolons

delimiter= ";"

csv.register_dialect("SKV", SKV)

reader= csv.reader(open("samples/sample.skv"),"SKV")

for title, year, directorin reader:

print year, title

如果仅仅仅是改变一两个参数,则可以直接在reader参数中设置,如下:

1

2

3

4

5

6

7

8

# File: csv-example-3.py

import csv

reader= csv.reader(open("samples/sample.skv"), delimiter=";")

for title, year, directorin reader:

print year, title

将数据存为CSV格式

通过csv.writer来生成一csv文件。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

# File: csv-example-4.py

import csv

import sys

data= [

("And Now For Something Completely Different",1971,"Ian MacNaughton"),

("Monty Python And The Holy Grail",1975,"Terry Gilliam, Terry Jones"),

("Monty Python's Life Of Brian",1979,"Terry Jones"),

("Monty Python Live At The Hollywood Bowl",1982,"Terry Hughes"),

("Monty Python's The Meaning Of Life",1983,"Terry Jones")

]

writer= csv.writer(sys.stdout)

for itemin data:

writer.writerow(item)

Python中可以使用内置的csv模块来读取和处理CSV文件。在统计CSV文件时,您可以使用以下步骤: 1. 导入csv模块。 2. 打开CSV文件并读取数据。 3. 对数据进行处理和计算。 4. 将计算结果输出到一个新的CSV文件中。 以下是一个简单的例子,演示如何使用Python计算CSV文件中列的总和: ```python import csv with open('data.csv', 'r') as file: reader = csv.reader(file) next(reader) # 跳过头部行 total = 0 for row in reader: total += int(row[1]) # 计算第二列的总和 print(f'Total: {total}') ``` 在这个例子中,我们使用`csv.reader`读取CSV文件中的每一行数据。我们使用`next`函数跳过了头部行,因为它们通常包含列名。在循环中,我们将第二列的值转换为整数,并将其添加到总和的变量中。最后,我们输出计算结果。 如果您想将计算结果保存到一个新的CSV文件中,可以使用`csv.writer`模块来写入数据。以下是一个简单的例子: ```python import csv with open('data.csv', 'r') as file: reader = csv.reader(file) next(reader) # 跳过头部行 total = 0 for row in reader: total += int(row[1]) # 计算第二列的总和 with open('result.csv', 'w', newline='') as file: writer = csv.writer(file) writer.writerow(['Total', total]) # 将计算结果写入新的CSV文件中 ``` 在这个例子中,我们使用`csv.writer`将计算结果写入新的CSV文件中。`newline=''`参数用于避免写入空行。我们使用`writerow`函数将结果作为一行写入,第一列为字符串'Total',第二列为计算结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值