📜  如何将新行附加到现有的 csv 文件?

📅  最后修改于: 2022-05-13 01:55:42.736000             🧑  作者: Mango

如何将新行附加到现有的 csv 文件?

要将新行附加到现有 CSV 文件,我们有很多方法可以做到这一点。在这里,我们将讨论有效执行此任务的 2 种方法。因此,我们有两种方法,第一种是“将列表作为新行添加到现有 CSV 文件中”,第二种方法是“将字典作为新行添加到现有 CSV 文件中”。

首先,让我们看看我们现有的 CSV 文件内容。假设我们有一个包含以下内容的 CSV 文件 event.csv。

追加前的 CSV 文件

为了编写 CSV 文件,CSV 模块提供了两个不同的类 writer 和 Dictwriter。

将列表作为新行附加到现有 CSV 文件

让我们看看如何使用 writer 类将列表作为新行附加到现有的 CSV 文件中。有几个步骤可以做到这一点。

  • 从 csv 模块导入编写器类
  • 以追加模式打开现有的 CSV 文件
    为这个文件创建一个文件对象。
  • 将此文件对象传递给 csv.writer() 并获得一个 writer 对象。
  • 将列表作为参数传递给 writer 对象的 writerow()函数。
    (它会将列表作为新行添加到 CSV 文件中)。
  • 关闭文件对象

让我们将一个列表添加为新行。

List=[6,'William',5532,1,'UAE']

现在将上述步骤应用到程序中。

Python3
# Import writer class from csv module
from csv import writer
  
# List 
List=[6,'William',5532,1,'UAE']
  
# Open our existing CSV file in append mode
# Create a file object for this file
with open('event.csv', 'a') as f_object:
  
    # Pass this file object to csv.writer()
    # and get a writer object
    writer_object = writer(f_object)
  
    # Pass the list as an argument into
    # the writerow()
    writer_object.writerow(List)
  
    #Close the file object
    f_object.close()


Python3
# Import DictWriter class from CSV module
from csv import DictWriter
  
# list of column names 
field_names = ['ID','NAME','RANK',
               'ARTICLE','COUNTRY']
  
# Dictionary
dict={'ID':6,'NAME':'William','RANK':5532,
      'ARTICLE':1,'COUNTRY':'UAE'}
  
# Open your CSV file in append mode
# Create a file object for this file
with open('event.csv', 'a') as f_object:
      
    # Pass the file object and a list 
    # of column names to DictWriter()
    # You will get a object of DictWriter
    dictwriter_object = DictWriter(f_object, fieldnames=field_names)
  
    #Pass the dictionary as an argument to the Writerow()
    dictwriter_object.writerow(dict)
  
    #Close the file object
    f_object.close()


输出:

附加列表后的 CSV 文件

当你执行这个程序时,确保你的 CSV 文件必须关闭,否则这个程序会给你一个权限错误。

将字典作为新行附加到现有 CSV 文件中

让我们看看如何使用 DictWriter 类将字典作为新行附加到现有的 CSV 文件中。有几个步骤可以做到这一点。

  • 从 CSV 模块导入 DictWriter 类。
  • 以追加模式打开您的 CSV 文件
    为这个文件创建一个文件对象。
  • 将文件对象和列名列表传递给 DictWriter()
    你会得到一个 DictWriter 对象。
  • 将字典作为参数传递给 DictWriter 的 Writerow()函数
    (它将向 CSV 文件添加一个新行)。
  • 关闭文件对象

让我们以一个我们想要添加为新行的字典为例。

dict={'ID':6,'NAME':'William','RANK':5532,'ARTICLE':1,'COUNTRY':'UAE'}

现在将上述步骤应用到程序中。

蟒蛇3

# Import DictWriter class from CSV module
from csv import DictWriter
  
# list of column names 
field_names = ['ID','NAME','RANK',
               'ARTICLE','COUNTRY']
  
# Dictionary
dict={'ID':6,'NAME':'William','RANK':5532,
      'ARTICLE':1,'COUNTRY':'UAE'}
  
# Open your CSV file in append mode
# Create a file object for this file
with open('event.csv', 'a') as f_object:
      
    # Pass the file object and a list 
    # of column names to DictWriter()
    # You will get a object of DictWriter
    dictwriter_object = DictWriter(f_object, fieldnames=field_names)
  
    #Pass the dictionary as an argument to the Writerow()
    dictwriter_object.writerow(dict)
  
    #Close the file object
    f_object.close()

输出:

附加字典后的 CSV 文件

当您执行此程序时,请确保必须关闭您的 CSV 文件,否则此程序会给您一个权限错误。