android开发实战 网络视频直播系统 typeScript firebase tkinter Way.js Notify.js Draggabilly vue安装 vue路由 vue插件 vue配置 相亲网站源码 微信pc版无法获取二维码 mysql卸载重装 python的range python正则提取字符串 python数字类型 python正则匹配空格 java的数据类型 java读取文件内容 java替换字符串 java调用方法 unix操作系统下载 乱码查看器 js刷新页面 win10wifi php小数点保留2位 php随机数函数 数据结构与算法分析 电脑上传速度慢 文件批量更名 vc运行库合集 hedit camworks 任务栏跑到右侧怎么办 mysql密码重置 ucs怎么用 img转iso cdr如何做立体字
当前位置: 首页 > 学习教程  > python

Python数据分析基础——CSV文件——选取连续的行

2021/2/6 22:25:09 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

参考文献:《Python数据分析基础》 前言 有时,在文件内容中,工作表头部和尾部都是你不想处理的。 例如,在supplier_data_unnecessary_header_footer.csv文件中,头部有“I don’t care about this row”,尾部…

参考文献:《Python数据分析基础》

前言

有时,在文件内容中,工作表头部和尾部都是你不想处理的。
例如,在supplier_data_unnecessary_header_footer.csv文件中,头部有“I don’t care about this row”,尾部有“I don’t want this row either”。这两部分都不是我们想要的,通过本文的讲述,我们将学习使用Python脚本使它不读取这些行。
在这里插入图片描述

创建脚本

在文本编辑器中输入一段代码,然后将文件保存为:11csv_reader_select_contiguous_rows.py

#!/usr/bin/env python3
import csv
import sys

input_file = sys.argv[1]
output_file = sys.argv[2]

row_counter = 0
with open(input_file, 'r', newline='') as csv_in_file:
	with open(output_file, 'w', newline='') as csv_out_file:
		filereader = csv.reader(csv_in_file)
		filewriter = csv.writer(csv_out_file)
		for row in filereader:
			if row_counter >= 3 and row_counter <= 15:
				filewriter.writerow([value.strip() for value in row])
			row_counter += 1

脚本代码注释

row_counter = 0

这里使用row_counter变量来跟踪行编号,以便可以识别和选取想要保留的行。

if row_counter >= 3 and row_counter <= 15:

这一行代码使用if控制流语句,跳过那些不需要的头部和尾部。在本例输入文件的前三行和后三行均不执行if代码块,起到了不读取这些行的效果。

filewriter.writerow([value.strip() for value in row])

这行代码的作用是处理需要保留的行,将它们写入输出文件,在列表生成式中,使用strip函数除去列表中每个元素两端的空格、制表符和换行符。
在这里需要进一步讨论一下,由于小编比较懒,一开始把这行代码写成了这个样子:

filewriter.writerow(row)

运行这两种版本的脚本,观察一下各自csv格式的文件
(左图为无strip版,右图为有strip版)
在这里插入图片描述
是不是没有看出什么明显的不同呢?那这意味着两种版本就是相同的吗?
答案当然不是啦!我们不妨换一种文件打开方式看看,这里小编使用的是记事本。
在这里插入图片描述
再仔细观察,是不是发现了一些端倪呢?细心的小伙伴可以看出,这两种版本区别在于最后一个逗号前的空格。无strip版本有空格,而有strip版本无空格。到此,是不是就可以理解strip函数在此处的作用呢?

row_counter += 1

最后这一行代码,作用是将行编号进行迭代。

运行脚本

在命令行输入以下命令,然后按回车键:
在这里插入图片描述

查看结果

(左图为处理前,右图为处理后)
在这里插入图片描述

结语

本文介绍了CSV文件中选取连续行的知识,对书上的内容及实际操作出现的问题进行了思考与总结。


本文链接: http://www.dtmao.cc/news_show_2000080.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?