为了账号安全,请及时绑定邮箱和手机立即绑定

使用 open 获取每个文件中的最后一列

使用 open 获取每个文件中的最后一列

阿波罗的战车 2021-08-17 16:28:53
如何获取打开文件的最后一列。我的意思是,用熊猫数据框来做这不是问题。对于这个问题,我使用 open 方法从不同的 txt 文件中只获取一些需要的信息。平均问题是, result_metar 位于不同的列中,并且未固定在第 21 列上。for xx in range(len(fns_land)):   with open(fns_land[xx]) as infile:        for line in infile:            result_station.append(line.split(',')[0])            result_date.append(line.split(',')[1])            result_metar.append(line.split(',')[21])例如,有没有办法使用 iloc 并更改固定值 21?我发现的答案只显示了熊猫解决方案。
查看完整描述

2 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

无论文件大小如何,您都可以在此处返回每个打开文件的最后一列:


for xx in range(len(fns_land)):

    with open(path) as infile:

         lines = infile.readlines()

         for line in lines:

             result_station.append(line.split(',')[0])

             result_date.append(line.split(',')[1])

             result_metar.append(line.split(',')[-1])


查看完整回答
反对 回复 2021-08-17
?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

首先,我想指出您多次调用 line.split() ,这是不理想的。相反,您可以通过将拆分结果列表分配给变量来拆分该行一次。然后只需从列表中选择项目即可。


但是......实际上我会这样做:


for filename in fns_land:

    with open(filename) as infile:

       last_line = infile.readlines()[-1]

       last_column = last_line.split(',')[-1]

       result_metar.append(last_column)


       """ 

       # alternatively 3 lines above could be just be one command, such as

       result_metar.append( (infile.readlines()[-1]).split(',')[-1] )

       """


查看完整回答
反对 回复 2021-08-17
  • 2 回答
  • 0 关注
  • 192 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信