什么是CSV文件?
CSV文件是一种纯文本文件,它使用特定的结构来排列表格数据。CSV是一种通用的数据交换格式,因为它紧凑、简单、通用。许多在线服务允许用户将表格数据从网站导出到CSV文件中。CSV文件将打开到Excel中,几乎所有的数据库都有一个允许从CSV文件导入的工具。标准格式由行和列数据定义。此外,每一行以换行符结束,以开始下一行。同样在行中,每列用逗号分隔。
在此教程中,您将了解:
- 什么是CSV文件?
- CSV样本文件。
- python CSV模块
- CSV模块功能
- 读取CSV文件
- cvs文件读取为字典
- 写入CSV文件
- 使用pandas读取cvs
- 使用pandas写入cvs
CSV样例文件。
表的形式数据也称为 CSV(逗号分离值) – 字面意思是”逗号分离值”。这是一种用于显示表格数据的文本格式。文件的每个行都是表的一行。单个列的值由分离器符号 ( 逗号), 分号 (,;)或其他符号。Python 可以轻松阅读和处理 CSV。
观察下表
表数据
编程语言 | 设计者 | 出现 | 扩展 |
Python | 吉多·范·罗森 | 1991 | .py |
Java | 詹姆斯·高斯林 | 1995 | .java |
C++ | 本贾尼·斯特劳斯特卢普 | 1983 | .cpp |
您可以在以下csv中表示此表。
CSV 数据
编程语言,设计者,出现,扩展
Python, 吉多范罗森, 1991, .py
Java,詹姆斯·高斯林,1995,.java
C++,本贾尼·斯特劳斯特卢普,1983,.cpp
正如您所看到的,每行都是另起一行,每个行都用逗号分开。
PythonCSV模块
Python 提供一个 CSV 模块来处理 CSV 文件。要读/写数据,您需要循环浏览 CSV 的行。您需要使用拆分方法从指定列获取数据。
CSV模块功能
在 CSV 模块文档中,您可以找到以下功能:
- csv.field_size_limit–返回最大字段大小
- csv.get_dialect-获取与名称相关的方言
- csv.list_dialects-显示所有注册方言
- csv.reader–从csv文件读取数据
- csv.register_dialect – 将方言与名称关联
- csv.writer–将数据写入csv文件
- csv.unregister_dialect – 删除与方言注册表名称相关的方言
- csv.QUOTE_ALL-报价一切,无论类型。
- csv.QUOTE_MINIMAL – 具有特殊字符的报价字段
- csv.QUOTE_NONNUMERIC – 引用所有非数字值的字段
- csv.QUOTE_NONE-不要引用任何输出
在此教程中,我们将只关注reader和writer功能,这些功能允许您编辑、修改和操作 CSV 文件中的数据。
如何读CSV文件
要读取 CSV 文件中的数据,您必须使用读取器函数生成读取器对象。
读取器函数被开发为采取文件的每一行,并列出所有列。然后,您必须选择您想要的可变数据列。
听起来比现在复杂多了。让我们来看看这个例子,我们会发现,使用csv文件并不难。
提前下载cvs文件到工程目录
import csv with open('data.csv','rt')as f: data = csv.reader(f) for row in data: print(row)
当您执行上述程序时,输出将是:
['Programming language; Designed by; Appeared; Extension'] ['Python; Guido van Rossum; 1991; .py'] ['Java; James Gosling; 1995; .java'] ['C++; Bjarne Stroustrup;1983;.cpp']
如何将CSV作为字典读取
您也可以使用DictReader读取CSV文件。结果被解释为一个字典,其中标题行是键,其他行是值。
请看以下代码
import csv reader = csv.DictReader(open("data.csv")) for raw in reader: print(raw)
此代码的结果是:
{'programming language': 'Python', 'Designed by': 'Guido van Rossum', 'Appeared': '1991', 'Extension': '.py'} {'programming language': 'Java', 'Designed by': 'James Gosling', 'Appeared': '1995', 'Extension': '.java'} {'programming language': 'C++', 'Designed by': 'Bjarne Stroustrup', 'Appeared': '1983', 'Extension': '.cpp'}
从 CSV 文件中读取数据的方法比之前的方法容易得多。但是,这不是读取数据的最佳方式。
如何写入CSV文件
当您拥有一组要存储在CSV文件中的数据时,使用writer功能。要在行上迭代数据,须使用writerow函数。
请考虑以下示例。我们将数据写入一个文件”wd.csv”,其中分隔符是逗号,
import csv with open('wd.csv', mode='w') as file: writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) writer.writerow(['语言', '作者', '出现', '扩展名']) writer.writerow(['Python', 'Guido van Rossum', '1991', '.py']) writer.writerow(['Java', 'James Gosling', '1995', '.java']) writer.writerow(['C++', 'Bjarne Stroustrup', '1985', '.cpp'])
生成csv文件:
用Pandas读取CSV文件
Pandas是一个开放源代码库,允许您用Python执行数据操作。Pandas提供了一种创建、操作和删除数据的简单方法。
使用命令pip install pandas安装pandas库
用pandas 读取CSV数据是非常快速和容易的:
#import necessary modules import pandas result = pandas.read_csv('data.csv') print(result)
结果:
Programming language Designed by Appeared Extension 0 Python Guido van Rossum 1991 .py 1 Java James Gosling 1995 .java 2 C++ Bjarne Stroustrup 1983 .cpp
非常有用的库。在短短的三行代码中,您的结果与之前相同。
用Pandas写入CSV文件
from pandas import DataFrame C = {'语言': ['Python','Java', 'C++'], '作者': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'], '出现': ['1991', '1995', '1985'], '扩展': ['.py', '.java', '.cpp'], } df = DataFrame(C, columns= ['语言', '作者', '出现', '扩展']) export_csv = df.to_csv ('pandaresult.csv', index = None, header=True) print (df)
output
语言 作者 出现 扩展 0 Python Guido van Rossum 1991 .py 1 Java James Gosling 1995 .java 2 C++ Bjarne Stroustrup 1985 .cpp
结论
所以,现在您知道了如何使用方法“csv”,以及如何以csv格式读写数据。CSV文件在软件应用中被广泛使用,因为它们易于读取和管理,并且其较小的尺寸使得它们的处理和传输速度相对较快。
csv模块提供各种函数和类,使您可以轻松地读写。您可以查看官方的Python文档,并找到一些更有趣的提示和模块。CSV是保存、查看和发送数据的最佳方式。其实,学习并不像一开始看起来那么难。但只要稍加练习,你就会掌握它。
Pandas是读取CSV文件的最佳选择。
此外,还有其他方法可以使用ANTLR、PLY和PlyPlus等库解析文本文件。它们都可以处理繁重的解析,如果简单的字符串操作不起作用,则可以使用正则表达式。