📜  在Python中更新 CSV 的列值(1)

📅  最后修改于: 2023-12-03 14:51:21.125000             🧑  作者: Mango

在Python中更新CSV的列值

CSV文件是一种非常常见的文件格式,它不需要像Excel那样需要安装特定的软件,也更容易与其他编程语言进行交互。在Python中,我们可以使用内置的csv库来读写CSV文件。本文将介绍如何使用Python更新CSV文件中的列值。

读取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对象,将文件中的每一行打印出来。

更新CSV文件的列值

现在让我们看一下如何使用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文件。