Python 利用 rows 快速操作 CSV 文件
CSV 文件是一种常见的数据格式,而 Python 中的标准库 csv 提供了操作 CSV 的基本工具。csv
模块中有两种方式读取 CSV,一种是基于行操作,一种是基于列操作,这里介绍基于行操作的读取和写入。
读取 CSV 文件
以下代码展示如何使用 Python 读取 CSV 文件中的数据,并打印出来:
import csv
with open('data.csv', newline='') as csvfile:
csvreader = csv.reader(csvfile)
for row in csvreader:
print(row)
代码中,我们用 with open()
打开CSV文件,然后使用 csv 模块的 csv.reader()
方法创建 csv 读取器(csvreader)。
csv.reader()
方法将每一行数据都以列表(list)形式返回。我们使用 for 循环遍历读取器返回的每行数据,并打印出来。
写入 CSV 文件
以下代码展示如何使用 Python 将数据写入 CSV 文件:
import csv
with open('output.csv', 'w', newline='') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerow(['Name', 'Age', 'Gender'])
csvwriter.writerow(['Bob', '25', 'Male'])
csvwriter.writerow(['Alice', '27', 'Female'])
代码中,我们用 with open()
打开 CSV 文件,并以写入模式打开('w'),然后使用 csv 模块的 csv.writer()
方法创建一个 csv 写入器(csvwriter)。
csvwriter.writerow()
方法可以将一行数据写入 CSV 文件。每一行数据都是一个列表(list),我们可以根据需要添加或删除列表元素。最后,我们必须关闭文件。
GitHub 上也提供了一个 简单的 CSV 操作例子,有兴趣的同学可以去看一下。
使用 rows 进行快速操作
Python 3.6 引入了一种新的数据类型(data type)叫做 rows
。Rows 本质上是一个命名元组(NamedTuple),可以将类似于三列四行的表格数据转换为一个 rows 序列。以下是一个简单的例子:
from collections import namedtuple
Person = namedtuple('Person', 'name age gender')
bob = Person('Bob', 25, 'Male')
alice = Person('Alice', 27, 'Female')
people = [bob, alice]
for person in people:
print(person.name, person.age, person.gender)
代码中,我们创建了一个名字为 Person 的 rows,列名为 name、age、gender。然后我们创建了两个人物 bob 和 alice,赋予他们各自的 name、age 和 gender 值,并将它们包装成 rows 。
最后,我们使用 for 循环遍历 people,打印出每个人物的信息。
结合 csv 模块,我们可以很轻松地实现读取和写入 CSV 文件的操作。以下是一个示例代码:
import csv
from collections import namedtuple
Person = namedtuple('Person', 'name age gender')
# 读取 CSV 文件
with open('data.csv', newline='') as csvfile:
csvreader = csv.reader(csvfile)
people = [Person(row[0], row[1], row[2]) for row in csvreader]
# 写入 CSV 文件
with open('output.csv', 'w', newline='') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerow(['Name', 'Age', 'Gender'])
for person in people:
csvwriter.writerow([person.name, person.age, person.gender])
在读取 CSV 文件时,我们使用了一个列表推导式。将 CSV 中的每行数据转换为名为 people 的 rows 序列中的一个 rows 对象。
在写入 CSV 文件时,我们使用了一个 for 循环遍历 people 序列,将每个 rows 对象的属性值写入输出文件中。
总结
本文介绍了 Python 中如何使用标准库 csv 快速处理 CSV 文件,并介绍了 Python 3.6 中新的数据类型 rows 的操作方法。通过 rows 可以快速地创建类似于表格的数据并进行操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python利用Rows快速操作csv文件 - Python技术站