Python写入CSV文件

Python写入CSV文件

CSV文件

CSV代表“逗号分隔值”,它定义了一种使用特定结构排列表格数据的简单文件格式。它以纯文本形式存储表格数据,如电子表格或数据库,并具有标准的数据交换格式。CSV文件打开后可以导入excel表格,行和列数据定义了标准格式。

Python的CSV模块函数

CSV模块的工作是处理CSV文件,读取/写入并从指定列中获取数据。有不同类型的CSV函数,如下所示:

  • csv.field_size_limit – 它返回解析器允许的当前最大字段大小。
  • csv.get_dialect – 返回与名称关联的方言。
  • csv.list_dialects – 返回所有已注册方言的名称。
  • csv.reader – 从CSV文件读取数据。
  • csv.register_dialect – 将方言与名称相关联,名称必须是字符串或Unicode对象。
  • csv.writer – 将数据写入CSV文件。
  • csv.unregister_dialect – 从方言注册表中删除与名称关联的方言。如果名称不是注册的方言名称,则会引发错误。
  • csv.QUOTE_ALL – 指示写入对象引用所有字段。
  • csv.QUOTE_MINIMAL – 指示写入对象仅引用包含特殊字符(如引号字符、分隔符等)的字段。
  • csv.QUOTE_NONNUMERIC – 指示写入对象引用所有非数字字段。
  • csv.QUOTE_NONE – 指示写入对象不引用字段。

编写CSV文件

我们也可以使用csv.writer()模块在Python中编写任何新的和现有的CSV文件。它类似于csv.reader()模块,也有两种方法,即 writer 函数或 Dict Writer 类。

它提供了两个函数,即 writerow()writerows() 。writerow()函数只写入一行,而writerows()函数写入多行。 方言

它被定义为一个允许您创建、存储和重用各种格式化参数的构造。它支持多个属性,最常用的属性有:

  • Dialect.delimiter: 此属性用作字段之间的分隔字符。默认值为逗号(,)。
  • Dialect.quotechar: 此属性用于引用包含特殊字符的字段。
  • Dialect.lineterminator: 用于创建新行,默认值为’\r\n’。

让我们将以下数据写入CSV文件。

data = [{'Rank': 'B', 'first_name': 'Parker', 'last_name': 'Brian'},   
{'Rank': 'A', 'first_name': 'Smith', 'last_name': 'Rodriguez'},  
{'Rank': 'C', 'first_name': 'Tom', 'last_name': 'smith'},  
{'Rank': 'B', 'first_name': 'Jane', 'last_name': 'Oscar'},   
{'Rank': 'A', 'first_name': 'Alex', 'last_name': 'Tim'}]  

示例 –

import csv  

with open('Python.csv', 'w') as csvfile:  
    fieldnames = ['first_name', 'last_name', 'Rank']  
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)  

    writer.writeheader()  
    writer.writerow({'Rank': 'B', 'first_name': 'Parker', 'last_name': 'Brian'})  
    writer.writerow({'Rank': 'A', 'first_name': 'Smith',  
                     'last_name': 'Rodriguez'})  
    writer.writerow({'Rank': 'B', 'first_name': 'Jane', 'last_name': 'Oscar'})  
    writer.writerow({'Rank': 'B', 'first_name': 'Jane', 'last_name': 'Loive'})  

print("Writing complete")  

输出:

Writing complete

它返回名为’Python.csv’的文件,其中包含以下数据:

first_name,last_name,Rank  
Parker,Brian,B  
Smith,Rodriguez,A  
Jane,Oscar,B  
Jane,Loive,B   

将CSV写入字典

我们还可以使用类 DictWriter 将CSV文件直接写入字典。

一个名为python.csv的文件包含以下数据:

Parker, 会计, 十一月

Smith, IT, 十月

示例 –

import csv  
with open('python.csv', mode='w') as csv_file:  
    fieldnames = ['emp_name', 'dept', 'birth_month']  
    writer = csv.DictWriter(csv_file, fieldnames=fieldnames)  
    writer.writeheader()  
    writer.writerow({'emp_name': 'Parker', 'dept': 'Accounting', 'birth_month': 'November'})  
    writer.writerow({'emp_name': 'Smith', 'dept': 'IT', 'birth_month': 'October'})  

产出:

emp_name,dept,birth_month
Parker,Accounting,November
Smith,IT,October

使用Pandas编写CSV文件

Pandas被定义为建立在Numpy库之上的开源库。它提供快速的分析、数据清洗和数据准备功能。

使用Pandas读取CSV文件就像读取一样简单。您需要创建DataFrame,它是一个二维、异构的表格数据结构,由数据、列和行三个主要组件组成。 这里,我们将读取一个稍微复杂一些的文件,名为hrdata.csv,其中包含了公司员工的数据。

Name,Hire Date,Salary,Leaves Remaining  
John Idle,08/15/14,50000.00,10  
Smith Gilliam,04/07/15,65000.00,8  
Parker Chapman,02/21/14,45000.00,10  
Jones Palin,10/14/13,70000.00,3  
Terry Gilliam,07/22/14,48000.00,7  
Michael Palin,06/28/13,66000.00,8  

示例 –

import pandas  
df = pandas.read_csv('hrdata.csv',   
            index_col='Employee',   
            parse_dates=['Hired'],  
            header=0,   
            names=['Employee', 'Hired', 'Salary', 'Sick Days'])  
df.to_csv('hrdata_modified.csv')  

输出:

Employee, Hired, Salary, Sick Days
John Idle, 2014-03-15, 50000.0,10
Smith Gilliam, 2015-06-01, 65000.0,8
Parker Chapman, 2014-05-12, 45000.0,10
Jones Palin, 2013-11-01, 70000.0,3
Terry Gilliam, 2014-08-12 , 48000.0,7
Michael Palin, 2013-05-23, 66000.0,8

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程