CSV文件在Python中的几种处理方式
Comma Separated Values,简称CSV,它是一种以逗号分隔数值的文件类型。在数据库或电子表格中,它是最常见的导入导出格式,它以一种简单而明了的方式存储和共享数据,CSV文件通常以纯文本的方式存储数据表。今天,我将给大家分享在Python中如何操作CSV文件。
一、数据源
首先,我们来看看本次操作的数据源,图1 CSV文件是在Excel中打开的,图2 CSV文件是在Notepad++中打开的,我们在图2中可以看到数值之间是以逗号分隔开的,每行末尾是CR回车符和LF换行符(请注意,Linux系统以LF结尾,MacOS系统以CR结尾)。


二、使用Python基本语法读写CSV文件
使用基本语法读取CSV文件中的数据大概思路是:获取文件对象,读取表头,按逗号分隔符拆分表头字段,使用for循环语句获取表体记录数据,拆分后再次写入另一张CSV文件中(如果要将数据写入xls*格式的文件中,请参考前期公众号文章),步骤如下:
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")
以上步骤完成后,在命令提示符中输入:
python csvrw.py inputfile.csv outputfile.csv
输入输出csv文件名称以及脚本名称请自定义,以上只是举例说明。
以上代码如下:

三、使用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)
以上步骤完成后,在命令提示符中输入相应命令即可(请参照)
代码如下:

四、使用pandas读写CSV文件
pandas库是一个强大的数据处理和数据分析库,使用pandas处理csv文件更简单,其步骤如下:
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)
以上步骤完成后,在命令提示符中输入相应命令即可(请参照)
代码如下:

CSV文件在Python中的几种处理方式的更多相关文章
- python中的三种输入方式
python中的三种输入方式 python2.X python2.x中以下三个函数都支持: raw_input() input() sys.stdin.readline() raw_input( )将 ...
- python 中的三种等待方式
为什么要用等待时间: 今天在写App的自动化的脚本时发现一个元素,但是往往执行脚本是报错( An element could not be located on the page using the ...
- Python中的三种数据结构
Python中,有3种内建的数据结构:列表.元组和字典.1.列表 list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目.列表中的项目.列表中的项目应该包括在方括号中,这 ...
- Python 中的几种矩阵乘法 np.dot, np.multiply, *【转】
本文转载自:https://blog.csdn.net/u012609509/article/details/70230204 Python中的几种矩阵乘法1. 同线性代数中矩阵乘法的定义: np.d ...
- 简单谈谈Python中的几种常见的数据类型
简单谈谈Python中的几种常见的数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等 ...
- Java学习-014-文本文件写入实例源代码(两种写入方式)
此文源码主要为应用 Java 读取文本文件内容实例的源代码.若有不足之处,敬请大神指正,不胜感激! 第一种:文本文件写入,若文件存在则删除原文件,并重新创建文件.源代码如下所示: /** * @fun ...
- Asp.Net中的三种分页方式
Asp.Net中的三种分页方式 通常分页有3种方法,分别是asp.net自带的数据显示空间如GridView等自带的分页,第三方分页控件如aspnetpager,存储过程分页等. 第一种:使用Grid ...
- SQL Server中的三种Join方式
1.测试数据准备 参考:Sql Server中的表访问方式Table Scan, Index Scan, Index Seek 这篇博客中的实验数据准备.这两篇博客使用了相同的实验数据. 2.SQ ...
- PHP中的6种加密方式
PHP中的6种加密方式 1. MD5加密 string md5 ( string $str [, bool $raw_output = false ] ) 参数 str -- 原始字符串. raw ...
随机推荐
- 初步学习jquery学习笔记(六)
jquery学习笔记六 AJAX 简介 AJAX 是与服务器交换数据的技术,它在不重载全部页面的情况下,实现了对部分网页的更新. load() 方法 load() 方法从服务器加载数据,并把返回的数据 ...
- P1142轰炸
这是uva上的一道模拟题. 首先给出n(n<=700)个点的坐标(坐标在1*10^9)之内,询问走直线可以经过的点数.一开始我想到了一个类似于桶排序的方法来存坐标,但是要注意数组大小啊!第二次想 ...
- rust学习小记(1)
本文的学习资料来自 Rust 程序设计语言 简体中文版 推荐用idea来写rust,装好插件rust和toml即可 cargo(包管理) 可以使用 cargo build 或 cargo check ...
- rk3288 编译应用程序
一. Android.mk 1.1. 什么是.mk Android.mk是Android提供的一个makefile文件,可以将源文件分组为模块.用来引用的头文件目录.需要编译的*.c/*.cpp文件. ...
- dp入门题(数塔)
http://acm.hdu.edu.cn/showproblem.php?pid=2084 题意: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 在上 ...
- 10.jQuery之停止动画排队stop方法(重点)
重点:stop,在实际项目中,这个细节很重要 <style> * { margin: 0; padding: 0; } li { list-style-type: none; } a { ...
- Linux 查看系统相关信息(系统发型版本及内核版本等)
以下为 Linux 以下信息查看命令,记录以备用 # uname -a # 查看内核/操作系统/CPU信息 # /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # ...
- vue中获取本地ip
一.目的 获取当前访问的ip地址 二.思路 通过使用搜狐的api获取访问ip 三.操作步骤 1.在index.html中添加 <script src="http://pv.sohu.c ...
- vue项目1-pizza点餐系统2-配置路由跳转
功能目标:点击导航栏中的菜单.主页.路由跳转到不同的组件,点击谁就在在导航栏下展示谁. 1.在router文件夹中(在用脚手架cli搭建项目时,有个couter的选yes)的index.js中,导入如 ...
- SecureCRT文件和文件夹显示不同颜色(像linux中那样效果)
如何设置secureCRT使用的他可以像linux文件和文件夹显示不同的颜色呢 原先显示效果如下: 效果图 配置