Comma Separated Values,简称csv,它是一种以逗号分隔数值的文件类型。在数据库或电子表格中,它是最常见的导入导出格式,它以一种简单而明了的方式存储和共享数据,CSV文件通常以纯文本的方式存储数据表。今天,我将给大家分享在Python中如何操作CSV文件。

一、数据源

首先,我们来看看本次操作的数据源,图1 CSV文件是在Excel中打开的,图2 CSV文件是在Notepad 中打开的,我们在图2中可以看到数值之间是以逗号隔开的,每行末尾是CR(回车符)和LF(换行符)(请注意,Linux系统以LF结尾,MacOS系统以CR结尾)。

python如何打开csv数据(CSV文件在Python中的几种处理方式)(1)

图1

python如何打开csv数据(CSV文件在Python中的几种处理方式)(2)

图2

二、使用Python基本语法读写CSV文件

使用基本语法读取CSV文件中的数据大概思路是:获取文件对象;读取表头;按逗号分隔符拆分表头字段;使用for循环遍历表中记录数据,拆分后再次写入另一张CSV文件中。详细步骤和代码如下所示:

Step 1:导入必要模块,获取输入输出文件路径名。

import sys infile = sys.argv[1] outfile = sys.argv[2]

Step 2:使用open内置函数获取文件对象。

with open(infile, "r", newline='') as fr, open(outfile, "w", newline='') as fw:

Step 3:使用文件对象的readline方法或者迭代器的next方法读取表头(文件对象是一个迭代器对象,支持迭代协议),使用str.split方法对表头进行拆分(注意,要使用strip函数去掉尾部换行符)。

header = next(fr) header = header.strip() header_list = header.split(",")

Step 4:表头拆分好后,我们需要将表头写入文件对象中(注意尾部需要添加一个换行符哦)。

fw.write(",".join(map(str, header_list)) "\n")

当然,上面的代码也可以这么写:

print(*header_list, sep=",", file=fw)

Step 5:使用for循环遍历表体数据,并将其拆分成列表写入到另一个文件中。

for row in fr: row = row.strip() row_list = row.split(",") fw.write(",".join(map(str, header_list)) "\n")

以上步骤完成后,将代码保存为csvrw.py,然后在命令提示符中输入:

python csvrw.py inputfile.csv outputfile.csv

输入输出csv文件名称以及脚本名称请自定义,以上只是举例说明。

以上代码如下:

python如何打开csv数据(CSV文件在Python中的几种处理方式)(3)

三、使用csv模块读写CSV文件

csv模块是Python内置的一个模块,它考虑了csv文件中的各种复杂情况,平时处理csv文件基本上使用此模块,下面来看看该模块处理csv文件的方式,步骤如下:

Step 1:首先,导入必要模块,获取输入输出文件路径名。

import sys import csv infile = sys.argv[1] outfile = sys.argv[2]

Step 2:使用open函数获取文件对象。

with open(infile, "r", newline='') as incsv, open(outfile, "w", newline='') as outcsv:

Step 3:使用csv模块中的reader和writer函数分别获取reader和writer对象。

freader = csv.reader(incsv, delimiter=",") fwriter = csv.writer(outcsv, delimiter=",")

Step 4:使用for循环语句读取和写入数据。

for rowlist in freader: fwriter.writerow(rowlist)

以上步骤完成后,在命令提示符中输入相应命令即可(请参照示例<二>)

代码如下:

python如何打开csv数据(CSV文件在Python中的几种处理方式)(4)

四、使用pandas读写CSV文件

pandas库是一个强大的数据处理和分析库,使用pandas处理csv文件更简单(请注意,pandas非内置库,需要另行安装),步骤如下:

Step 1:首先,导入必要模块,获取输入输出文件路径名。

import sys import pandas as pd infile = sys.argv[1] outfile = sys.argv[2]

Step 2:使用pandas的read_csv方法将数据存储到一个DataFrame对象中。

dataframe = pd.read_csv(infile)

Step 3:然后使用DataFrame的to_csv方法将其输出到另一张csv表中。

dataframe.to_csv(outfile, index=False)

以上步骤完成后,在命令提示符中输入相应命令即可(请参照<二>)

代码如下:

python如何打开csv数据(CSV文件在Python中的几种处理方式)(5)

OK,以上内容就是Python处理CSV文件的3种方式,内容比较简单,感谢您的观看!

,