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

时间:2018-11-14 09:56:14

标签: python pandas csv

如何获取打开文件的最后一列。我的意思是,用panda dataframen做到这一点不是问题。 我使用这个开放方法来从不同的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 个答案:

答案 0 :(得分:2)

您可以在此处返回每个打开文件的最后一列,而不管文件的大小:

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])

答案 1 :(得分:0)

首先,我想指出的是您多次调用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] )
       """