什么是 CSV 文件?
CSV 文件 是一种简单类型的纯文本文件,它使用特定的结构来排列表格数据。 CSV 文件的标准格式由行和列数据定义,其中换行符终止每一行以开始下一行,每一列在行内用逗号分隔。
CSV 是数据交换的常用格式,因为它紧凑、简单且通用。许多在线服务允许用户将表格数据从网站导出为 CSV 文件。 CSV 文件将打开到 Excel 中,并且几乎所有数据库都有允许从 CSV 文件导入的工具。
在本教程中,您将学习:
- 什么是 CSV 文件?
- CSV 示例文件
- Python CSV 模块
- CSV 模块功能
- 如何在 Python 中读取 CSV 文件
- 如何在 Python 中将 CSV 文件读入字典
- 如何用 Python 编写 CSV 文件
- 使用 Pandas 读取 CSV 文件
- 使用 Pandas 编写 CSV 文件
CSV 示例文件
表格形式的数据也称为 CSV(逗号分隔值)——字面意思是“逗号分隔值”。这是一种用于表示表格数据的文本格式。文件的每一行都是表格的一行。各个列的值由分隔符分隔 - 逗号 (,)、分号 (;) 或其他符号。 CSV 可以通过 Python 轻松读取和处理。
考虑下表
表格数据
编程语言 | 设计者 | 出现 | 扩展 |
---|---|---|---|
Python | 吉多·范罗苏姆 | 1991 | .py |
Java | 詹姆斯·高斯林 | 1995 | .java |
C++ | Bjarne Stroustrup | 1983 | .cpp |
您可以在 csv 中表示此表,如下所示。
CSV 数据
编程语言,设计者,出现,扩展
Python,Guido van Rossum,1991,.py
Java,詹姆斯·高斯林,1995,.java
C++, Bjarne Stroustrup,1983,.cpp
如您所见,每一行都是一个新行,每一列用逗号分隔。这是 CSV 文件的外观示例。
下载CSV数据
Python CSV 模块
Python 提供了一个 CSV 模块来处理 CSV 文件。要读取/写入数据,您需要遍历 CSV 的行。需要使用split方法从指定列中获取数据。
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 – 不要在输出中引用任何内容
在本教程中,我们将只关注读取器和写入器功能,它们允许您编辑、修改和操作 CSV 文件中的数据。
如何在 Python 中读取 CSV 文件
以下是在 Python 中读取 CSV 文件的步骤。
步骤 1) 要从CSV文件中读取数据,必须使用reader函数生成一个reader对象。
reader 函数被开发为获取文件的每一行并制作所有列的列表。然后,您必须选择要为其添加变量数据的列。
这听起来比实际复杂得多。看看这段Python读取CSV文件的代码,我们就会发现,使用csv文件并没有那么难。
#import required modulesimport csvwith open('X:\data.csv','rt')as f:data =csv.reader(f) for row in data:print(row)
步骤 2) 当你执行上面的程序时,输出将是:
['编程语言;设计者;出现;扩展']['Python;吉多·范罗苏姆; 1991年; .py']['Java;詹姆斯·高斯林; 1995年; .java']['C++; Bjarne Stroustrup;1983;.cpp']
如何在 Python 中将 CSV 文件读入字典
您也可以使用 DictReader 读取 CSV 文件。结果被解释为一个字典,其中标题行是键,其他行是值。
考虑下面的代码
#import required modulesimport csvreader =csv.DictReader(open("file2.csv"))for raw in reader:print(raw)
这段代码的结果是:
OrderedDict([('Programming language', 'Python'), ('Designed by', 'Guido van Rossum'), ('出现', '1991'), ('扩展名', '.py') ])OrderedDict([('Programming language', 'Java'), ('Designed by', 'James Gosling'), ('出现', '1995'), ('扩展', '.java')]) OrderedDict([('Programming language', 'C++'), ('Designed by', 'Bjarne Stroustrup'), ('出现', '1985'), ('扩展', '.cpp')])预>
![]()
这种从 CSV 文件读取数据的方法比以前的方法容易得多。然而,这并不是读取数据的最佳方式。
如何用 Python 编写 CSV 文件
下面是如何用 Python 编写 CSV 文件:
当您有一组要存储在 CSV 文件中的数据时,您必须使用 writer() 函数。要在行(行)上迭代数据,您必须使用 writerow() 函数。
考虑以下示例。我们将数据写入文件“writeData.csv”,其中分隔符为撇号。
#import required modulesimport csvwith open('X:\writeData.csv', mode='w') as file:writer =csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) #写入 csv 文件的方式 writer.writerow(['Programming language', 'Designed by', 'Appeared', 'Extension']) writer.writerow(['Python', 'Guido van Rossum', '1991', '.py']) writer.writerow(['Java', 'James Gosling', '1995', '.java']) writer.writerow(['C++', 'Bjarne Stroustrup', '1985 ', '.cpp'])csv文件中的结果是:
编程语言,设计者,出现,扩展 Python,Guido van Rossum,1991,.pyJava,James Gosling,1995,.javaC++,Bjarne Stroustrup,1983,.cpp
![]()
使用 Pandas 读取 CSV 文件
Pandas 是一个开源库,允许您在 Python 中导入 CSV 并执行数据操作。 Pandas 提供了一种创建、操作和删除数据的简单方法。
您必须使用命令
pip install pandas
安装 pandas 库。在 Windows 中,您将在命令提示符中执行此命令,而在 Linux 中,您将在终端中执行此命令。将 CSV 读入 Pandas DataFrame 非常快速和容易:
#import必要的模块import pandasresult =pandas.read_csv('X:\data.csv')print(result)读取 CSV Pandas 示例的结果:
编程语言,设计者,出现,扩展 0 Python,Guido van Rossum,1991,.py1 Java,James Gosling,1995,.java2 C++,Bjarne Stroustrup,1983,.cpp非常有用的图书馆。只需三行代码即可获得与之前相同的结果。 Pandas 知道 CSV 的第一行包含列名,它会自动使用它们。
使用 Pandas 编写 CSV 文件
使用 Pandas 写入 CSV 文件就像阅读一样简单。在这里你可以说服它。首先,您必须基于以下 Python 写入 CSV 代码创建 DataFrame。
from pandas import DataFrameC ={'Programming language':['Python','Java', 'C++'], 'Designed by':['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'] , '出现':['1991', '1995', '1985'], '扩展名':['.py', '.java', '.cpp'], }df =DataFrame(C, columns=[ 'Programming language', 'Designed by', 'Appeared', 'Extension'])export_csv =df.to_csv(r'X:\pandaresult.csv', index =None, header=True) #这里要写路径, 结果文件将存储在哪里打印 (df)这是输出
编程语言,设计者,出现,Extension0 Python,Guido van Rossum,1991,.py1 Java,James Gosling,1995,.java2 C++,Bjarne Stroustrup,1983,.cpp并在指定位置创建 CSV 文件。
![]()
结论
所以,现在您知道如何使用“csv”方法以及如何以 CSV 格式读取和写入数据。 CSV文件由于易于阅读和管理,而且体积小,处理和传输速度较快,因此在软件应用中得到了广泛的应用。
csv 模块提供了各种函数和类,使您可以轻松阅读和编写。你可以查看官方的 Python 文档,找到一些更有趣的技巧和模块。 CSV 是保存、查看和发送数据的最佳方式。事实上,学习并不像一开始看起来那么难。但只要稍加练习,你就会掌握它。
Pandas 是读取 CSV 文件的绝佳选择。
此外,还有其他方法可以使用 ANTLR、PLY 和 PlyPlus 等库来解析文本文件。它们都可以处理繁重的解析,如果简单的字符串操作不起作用,您可以使用正则表达式。
Python