分割方法提供意外输出

时间:2015-08-18 17:17:54

标签: python csv

我从CSV文件中读取如下一行:

GsmUart: enabled    2015-08-13T16:57:14.558000    0.072651 

请注意,写入CSV时,行中的每个条目都由'\t'分隔。

问题:我想提取0.072651

我试过了:

  • print(str(line))给出了整行。

  • line.split('\t')[1].split('\t')[0]给出了时间戳。

  • line.split('\t')[1].split('\t')[1]提供IndexError: list index out of range

1 个答案:

答案 0 :(得分:3)

第一个line.split('\t')已经在所有选项卡上拆分,因此在第二次调用中没有更多要拆分,这意味着列表中只有一个元素,第二个.split('\t')返回给出你IndexError试图索引一个不存在的第二个元素。

你想要的是第一次分割得到0.072651的最后一个元素:

line.split('\t')[-1]

您还可以使用csv模块读取文件,将标签作为分隔符传递:

import  csv

with open("your_file") as f:
    r = csv.reader(f,delimiter="\t")
    for a,b,c in row: 
        # ...