📜  用Python编写 CSV 文件

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

用Python编写 CSV 文件

CSV(逗号分隔值)是一种简单的文件格式,用于存储表格数据,例如电子表格或数据库。 CSV 文件以纯文本形式存储表格数据(数字和文本)。文件的每一行都是一个数据记录。每条记录由一个或多个字段组成,以逗号分隔。使用逗号作为字段分隔符是此文件格式名称的来源。

Python提供了一个名为csv的内置模块来处理 CSV 文件。该模块提供了各种用于写入 CSV 的类:

  • 使用 csv.writer 类
  • 使用 csv.DictWriter 类

使用 csv.writer 类

csv.writer类用于将数据插入 CSV 文件。此类返回一个 writer 对象,该对象负责将用户的数据转换为分隔字符串。应使用newline=''打开 csvfile 对象,否则引用字段内的字符将无法正确解释。

csv.writer类提供了两种写入 CSV 的方法。它们是writerow()writerows()

  • writerow():此方法一次写入一行。可以使用此方法写入字段行。

    句法:

    writerow(fields)
    
  • writerows():此方法用于一次写入多行。这可用于编写行列表。

    句法:

    Writing CSV files in Python
    writerows(rows)
    

例子:

# Python program to demonstrate
# writing to CSV
  
  
import csv 
    
# field names 
fields = ['Name', 'Branch', 'Year', 'CGPA'] 
    
# data rows of csv file 
rows = [ ['Nikhil', 'COE', '2', '9.0'], 
         ['Sanchit', 'COE', '2', '9.1'], 
         ['Aditya', 'IT', '2', '9.3'], 
         ['Sagar', 'SE', '1', '9.5'], 
         ['Prateek', 'MCE', '3', '7.8'], 
         ['Sahil', 'EP', '2', '9.1']] 
    
# name of csv file 
filename = "university_records.csv"
    
# writing to csv file 
with open(filename, 'w') as csvfile: 
    # creating a csv writer object 
    csvwriter = csv.writer(csvfile) 
        
    # writing the fields 
    csvwriter.writerow(fields) 
        
    # writing the data rows 
    csvwriter.writerows(rows)

输出:

python-write-to-csv

使用 csv.DictWriter 类

此类返回一个将字典映射到输出行的写入器对象。

csv.DictWriter 提供了两种写入 CSV 的方法。他们是:

  • writeheader(): writeheader()方法只是使用预先指定的字段名写入 csv 文件的第一行。

    句法:

    writeheader()
    
  • writerows(): writerows方法简单地写入所有行,但在每一行中,它只写入值(而不是键)。

    句法:

    writerows(mydict)
    

例子:

# importing the csv module 
import csv 
    
# my data rows as dictionary objects 
mydict =[{'branch': 'COE', 'cgpa': '9.0', 'name': 'Nikhil', 'year': '2'}, 
         {'branch': 'COE', 'cgpa': '9.1', 'name': 'Sanchit', 'year': '2'}, 
         {'branch': 'IT', 'cgpa': '9.3', 'name': 'Aditya', 'year': '2'}, 
         {'branch': 'SE', 'cgpa': '9.5', 'name': 'Sagar', 'year': '1'}, 
         {'branch': 'MCE', 'cgpa': '7.8', 'name': 'Prateek', 'year': '3'}, 
         {'branch': 'EP', 'cgpa': '9.1', 'name': 'Sahil', 'year': '2'}] 
    
# field names 
fields = ['name', 'branch', 'year', 'cgpa'] 
    
# name of csv file 
filename = "university_records.csv"
    
# writing to csv file 
with open(filename, 'w') as csvfile: 
    # creating a csv dict writer object 
    writer = csv.DictWriter(csvfile, fieldnames = fields) 
        
    # writing headers (field names) 
    writer.writeheader() 
        
    # writing data rows 
    writer.writerows(mydict) 

输出:

python-csv