📅  最后修改于: 2023-12-03 14:51:21.125000             🧑  作者: Mango
CSV文件是一种非常常见的文件格式,它不需要像Excel那样需要安装特定的软件,也更容易与其他编程语言进行交互。在Python中,我们可以使用内置的csv库来读写CSV文件。本文将介绍如何使用Python更新CSV文件中的列值。
首先,让我们看一下如何使用csv库读取CSV文件。假设我们有一个名为“data.csv”的文件,其中包含以下内容:
Name, Age, Country
Alice, 25, USA
Bob, 30, Canada
Charlie, 35, UK
我们可以使用以下代码读取它:
import csv
with open('data.csv') as csv_file:
csv_reader = csv.reader(csv_file)
# 将每一行打印出来
for row in csv_reader:
print(row)
输出结果如下:
['Name', 'Age', 'Country']
['Alice', '25', 'USA']
['Bob', '30', 'Canada']
['Charlie', '35', 'UK']
这里首先打开了"data.csv"文件,并使用csv.reader()函数创建了一个csv_reader对象。接着,使用for循环迭代csv_reader对象,将文件中的每一行打印出来。
现在让我们看一下如何使用Python更新CSV文件中的列值。假设我们想更新"Age"列的值为100,我们可以使用以下代码:
import csv
with open('data.csv') as csv_file:
csv_reader = csv.reader(csv_file)
# 创建一个空的列表来存储修改后的所有行
updated_rows = []
# 将每一行打印出来并更新"Age"列的值为100
for row in csv_reader:
row[1] = 100
updated_rows.append(row)
with open('data.csv', mode='w', newline='') as csv_file:
csv_writer = csv.writer(csv_file)
# 将修改后的所有行写入CSV文件
csv_writer.writerows(updated_rows)
在这里,首先与前面一样读取CSV文件,创建一个csv_reader对象。接着,创建一个空的列表“updated_rows”,用于存储修改后的所有行。使用for循环迭代csv_reader对象,并更新“Age”列的值为100,最后将修改后的每一行添加到“updated_rows”列表中。
最后,使用open()函数打开CSV文件,修改文件模式为“w”,即写入模式。创建一个csv_writer对象,使用writerows()函数将修改后的所有行写入CSV文件。
现在我们再次读取"data.csv"文件,并可以看到"Age"列的值已成功地更新为100。
['Name', 'Age', 'Country']
['Alice', '100', 'USA']
['Bob', '100', 'Canada']
['Charlie', '100', 'UK']
注意:使用writerows()函数时,需要特别注意newline=''参数,否则每行之间会多出一行空行。
这篇文章介绍了如何使用Python更新CSV文件中的列值。首先,我们使用csv库读取CSV文件。接着,我们创建一个空的列表来存储修改后的所有行,并使用for循环迭代csv_reader对象,在修改每一行的列值之后,将修改后的每一行添加到“updated_rows”列表中。最后,我们使用csv库的writerows()函数将修改后的所有行写入CSV文件。