用Python编写CSV文件详细指南

2021年3月11日18:06:51 发表评论 1,478 次浏览

本文概述

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

Python提供了一个内置模块, 称为CSV使用CSV文件。此模块提供了用于写入CSV的各种类:

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

使用csv.writer类

csv作家类用于将数据插入CSV文件。此类返回一个writer对象, 该对象负责将用户的数据转换为定界的字符串。一个csvfile对象应该用换行符=''否则, 引号字段内的换行符将无法正确解释。

语法:csv.writer(csvfile, Dialect ='excel', ** fmtparams)参数:csvfile:具有write()方法的文件对象。方言(可选):要使用的方言名称。 fmtparams(可选):格式化参数, 这些参数将覆盖在方言中指定的参数。

csv作家类提供了两种写入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写到csv

使用csv.DictWriter类

此类返回一个writer对象, 该对象将字典映射到输出行。

语法:csv.DictWriter(csvfile, fieldnames, restval =", extrasaction ='raise', 方言='excel', * args, ** kwds)参数:csvfile:具有write()方法的文件对象。字段名:一系列键, 用于标识字典中值的传递顺序。 restval(可选):如果字典缺少字段名中的键, 则指定要写入的值。 extrasaction(可选):如果在字段名中找不到键, 则可选的extrasaction参数指示要执行的操作。如果将其设置为引发ValueError, 则会引发。方言(可选):要使用的方言名称。

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

writeheader():

writeheader()

方法仅使用预先指定的字段名写入csv文件的第一行。

语法如下:

writeheader()

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

注意怪胎!巩固你的基础Python编程基础课程和学习基础知识。

首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。


木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: