数据分割功能

时间:2014-12-11 10:55:55

标签: python

问题

我有两个文件,我必须阅读并从中提取数据。 数据包含以下字符串:

162,   520,20121028,  -28,    0
162,   520,20121029,   54,    0
162,   520,20121102,   48,    0
162,   520,20121103,   33,    0
162,   520,20121104,   12,    0

我需要将数据解压缩到一个变量中,我想将其添加到列表中,以便我可以对其进行分析。

我尝试了什么

hoog ='/Users/arkin/programming/TX_STAID000162.txt'

data_laag = open('/Users/arkin/programming/TN_STAID000162.txt')

temp = []

for line in data_laag:

    niks = line.split(',')
    temp.append(niks[3])

我想给第三个字符串命名为temp并将它们附加到列表但是我得到了错误

index out of range 

分割的结果是:

['   162', '   520', '20121130', '  -28', '    0\r\n']

1 个答案:

答案 0 :(得分:0)

您的代码是正确的,因此您的输入文件有问题。 可能有一行只有2个逗号分隔值?或者只是一个空行?

在尝试获取不存在的数据之前,您可以使用正则表达式检查该行是否有效。下面是一个例子:

import re

regex = re.compile("([\s -]*\d*,){4}")
data_laag = open("data_file.txt")
temp = []

for line in data_laag:
    if regex.match(line):
        niks = line.split(',')
        temp.append(niks[3].strip())

print temp

使用此代码,我得到输出

['-28', '54', '48', '33', '12']