Python 读取 csv 文件

CSV 文件

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

Python CSV 模块函数

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

  • csv.field_size_limit - 返回解析器当前允许的最大字段大小。

  • csv.get_dialect- 返回与名字相关联的方言。

  • csv.list_dialect- 返回所有已注册方言的名称。

  • csv.reader - 它从 csv 文件中读取数据

  • csv.register_dialect - 它将方言与名字联系起来。该名称必须是字符串或 Unicode 对象。

  • csv.writer - 它将数据写入 csv 文件

  • csv.unregister_dialect- 它从方言注册表中删除与该名称相关联的方言。如果名称不是注册的方言名称,则会引发错误。

  • csv.QUOTE_MINIMAL - 它指示编写器对象引用所有字段。csv。它指示编写器对象只引用那些包含特殊字符的字段,如 quotechar、分隔符等。

  • csv.QUOTE_NONNUMERIC - 它指示编写器对象引用所有非数字字段。

  • csv.QUOTE_NONE - 它指示编写器对象永远不要引用字段。

正在读取 CSV 文件

Python 提供了各种函数来读取 csv 文件。我们正在描述几种读取函数的方法。

  • 使用 csv.reader()功能

在 Python 中, csv.reader() 模块用于读取 csv 文件。它获取文件的每一行,并列出所有的列。

我们取了一个名为 python.txt 的 txt 文件,它有默认的分隔符逗号(,,数据如下:


name,department,birthday month
Parker,Accounting,November
Smith,IT,October


import csv
with open('python.csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
line_count = 0
for row in csv_reader:
if line_count == 0:
print(f'Column names are {", ".join(row)}')
line_count += 1

输出:

Column names are name, department, birthday month
Parker works in the Accounting department, and was born in November.
Smith works in the IT department, and was born in October.
Processed 3 lines.

在上面的代码中,我们已经使用 open() 函数打开了‘python . CSV’。我们使用 csv.reader() 函数读取文件,返回一个可迭代的 reader 对象。reader对象已经包含了数据,我们使用对循环进行迭代,以打印每行的内容

把 csv 文件读入字典

我们也可以使用 DictReader() 函数将 csv 文件直接读入字典,而不是处理单个字符串元素的列表。

同样,我们的输入文件 python.txt 如下:


name,department,birthday month
Parker,Accounting,November
Smith,IT,October


import csv
with open('python.txt', mode='r') as csv_file:
csv_reader = csv.DictReader(csv_file)
line_count = 0
for row in csv_reader:
if line_count == 0:
print(f'The Column names are as follows {", ".join(row)}')
line_count += 1
print(f'\t{row["name"]} works in the {row["department"]} department, and was born in {row["birthday month"]}.')
line_count += 1
print(f'Processed {line_count} lines.')

输出:

The Column names are as follows name, department, birthday month
Parker works in the Accounting department, and was born in November.
Smith works in the IT department, and was born in October.
Processed 3 lines.

用 Pandas 读取 csv 文件

Pandas 被定义为建立在数字图书馆之上的开源图书馆。它为用户提供快速分析、数据清理和数据准备。

将 csv 文件读入 PandasDataFrame是快速直接的。我们不需要写足够多的代码来打开、分析和读取 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')
print(df)

在上面的代码中,这三行足以读取文件,其中只有一行在做实际的工作,即 pandas.read_csv()

输出:

         Name                Hire Date     Salary      Leaves Remaining
0 John Idle 03/15/14 50000.0 10
1 Smith Gilliam 06/01/15 65000.0 8
2 Parker Chapman 05/12/14 45000.0 10
3 Jones Palin 11/01/13 70000.0 3
4 Terry Gilliam 08/12/14 48000.0 7
5 Michael Palin 05/23/13 66000.0 8

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