Menu Close

Python中读取写入CSV文件

什么是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文件:

%title插图%num

用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等库解析文本文件。它们都可以处理繁重的解析,如果简单的字符串操作不起作用,则可以使用正则表达式。

附件下载

Posted in Python

发表评论

相关链接