来自text文件的python line.split语义错误

时间:2009-10-27 22:49:27

标签: python string

这部分代码应该创建一个包含文本文件中第二列值的列表,但它需要第二个字母。有谁知道我的问题是什么?

TEXTFILE  
opi 60  
kid 60  
pou 60  
ret 60  
kai 60  
bob 100  

for line in lst:                          
    line.split(' ')  
    fire.append(int(line[1]))
    print(line[1])  

5 个答案:

答案 0 :(得分:1)

你可能想做这样的事情:

mylist = []

for line in file:
    firstcolval, secondcolval = line.split()
    mylist.append(int(firstcolval))

答案 1 :(得分:1)

这也应该有用

import csv
for line in csv.reader(open("datafile"), delimiter=" "):                          
    fire.append(int(line[1]))
    print(line[1])

可选地

from operator import itemgetter
import csv
f=csv.reader(open("datafile"),delimiter=' ')
fire+=[int(x[1]) for x in f]

答案 2 :(得分:0)

line.split(' ') 

您的错误在那里,split不会拆分line,但会返回分割线。所以你需要做的是

columns = line.split(' ')

并改为使用列

答案 3 :(得分:0)

你可以用一个简单的衬垫来做到这一点。

fire = [int(b) for a, b in line.split(" ") for line in lst]

答案 4 :(得分:0)

好的,因为split会创建一个新对象(包含至少一个元素的列表),你应该这样做:

for line in lst:
    lc = line.split(' ')
    fire.append(int(lc[1]))
    print lc[1]

但正如某人已经建议的那样,你可以用一行列表理解来做到这一点:

newlist = [int(current[1]) for current in line.split(" ") for line in lst]

其中读取如下:对于lst中的行,我们用空格分割行,并将索引为1的元素从拆分行(current [1])转换为int,添加到新列表中。