Python 编写 CSV 文件

CSV 文件

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

Python CSV 模块函数

CSV 模块的工作是处理 CSV 文件,以便从指定的列中读取/写入和获取数据。CSV 函数有不同的类型。

编写 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 的文件包含以下数据:

帕克,会计,11 月

史密斯,信息技术,10 月

示例-


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

原文:https://www.javatpoint.com/python-write-csv-file