我从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
。
答案 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:
# ...