Python 提供意外输出的拆分方法
我从CSV文件中读到一行,如下所示:Python 提供意外输出的拆分方法,python,csv,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]提供索引器:列表索引超出范围 第一个行.
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]
索引器:列表索引超出范围
行.split('\t')
已经在所有选项卡上拆分,因此在第二次调用中没有更多的选项卡可以拆分,这意味着第二个.split('\t')
返回的列表中只有一个元素,给您一个索引器尝试索引不存在的第二个元素
您需要的是从第一次拆分得到的最后一个元素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:
# ...
我觉得自己很愚蠢。line.split('\t')[2]完成了任务,谢谢@xMaster,不用担心,如果您的所有数据都是以制表符分隔的,并且有三列,那么您可以像上一部分一样使用csv模块进行拆分