Python3跳过第一行读取文件内容

读取csv或tsv格式的文件时,经常需要读取跳过文件头,直接读取文件内容,假定我们要读取的文件格式如下:
data.tsv

idscorereview
15.0This is a good product
23.0Not so bad

我们只需读取文件数据而无需文件头信息,那么最简单的方法就是打开文件后在循环中判断是否为第一行,是第一行则跳过:

with open('data.tsv', 'r') as f:
	lines = f.readlines()
	for line_counter, line in enumerate(lines):
		if line_counter != 0:	# skip first line of the file
			# process data
			...
f.close()

但是这种写法在每次循环中都要做一次if判断,很耗时,下面给定几种更为高效的方法:

  • 使用next函数
with open('data.tsv', 'r') as f:
	next(f)		# skip first line
	lines = f.readlines()
	for line in lines:
		# process data
		...
f.close()

如果需要文件头,则可将next函数的返回值存入变量中:

first_line = next(f)
  • 直接从第二行开始读取

f.readlines()函数返回的是一个保存了每行内容的list,根据此特性可以直接从第二行开始获取

with open('data.tsv', 'r') as f:
	lines = f.readlines()[1:]	# get [1, ...n) elements with index starts from 0
	for line in lines:
		# process data
		...
f.close()
  • 使用itertools包
from itertools import islice  
with open('data.tsv', 'r') as f: 
	for line in islice(f, 1, None):  
    	# process data
f.close()

这个工具有个好处就是可以根据参数从任一行开始读取,例如在islice()函数的第二个参数中传入5,则表示从第5行开始读取。

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值