python从第二行开始读取文件_python - 从第2行读取文件或跳过头部

为了概括阅读多个标题行的任务并提高可读性,我使用方法提取。 假设您想要将coordinates.txt的前三行标记为头信息。

coordinates.txt

---------------

Name,Longitude,Latitude,Elevation, Comments

String, Decimal Deg., Decimal Deg., Meters, String

Euler's Town,7.58857,47.559537,0, "Blah"

Faneuil Hall,-71.054773,42.360217,0

Yellowstone National Park,-110.588455,44.427963,0

然后方法提取允许您指定您想要对标题信息执行的操作(在此示例中,我们只是根据逗号将标题行标记,并将其作为列表返回,但还有空间可以执行更多操作)。

def __readheader(filehandle, numberheaderlines=1):

"""Reads the specified number of lines and returns the comma-delimited

strings on each line as a list"""

for _ in range(numberheaderlines):

yield map(str.strip, filehandle.readline().strip().split(','))

with open('coordinates.txt', 'r') as rh:

# Single header line

#print next(__readheader(rh))

# Multiple header lines

for headerline in __readheader(rh, numberheaderlines=2):

print headerline # Or do other stuff with headerline tokens

产量

['Name', 'Longitude', 'Latitude', 'Elevation', 'Comments']

['String', 'Decimal Deg.', 'Decimal Deg.', 'Meters', 'String']

如果coordinates.txt包含另一个标题,只需更改numberheaderlines。最重要的是,__readheader(rh, numberheaderlines=2)正在做什么,我们避免了必须弄清楚或评论为什么接受的答案的作者在他的代码中使用next()的模糊性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值