用for循环解析python中的文件

时间:2014-01-01 19:33:12

标签: python

我试图用一些循环解析python中知识有限的文件,但似乎我做错了。如果genes(sp...)中的值介于中间的数字之间,我想获得lst。这是文件(ast.txt):

SPAC212.11  1   5662    -1

SPAC212.10  5726    6331    -1

SPAC212.09c 7619    9274    1

SPNCRNA.70  11027   11556   -1

SPAC212.08c 11784   12994   1

SPAC212.07c 13665   14555   1

SPAC212.12  15855   16226   1

SPAC212.06c 18042   18306   1

这是我的代码:

lst=[2,6000,18042,11784]

f=open('asd.txt','r')

g=f.readlines()[0:]

for line in g:
    for s in lst:
        if (s)>=int(line.split()[1:2]) and (s)<=int(line.split()[2:3]):
            line.split()[0:1]

1 个答案:

答案 0 :(得分:2)

一些建议:

output = [] # lines to keep; empty for now

with open("asd.txt", 'r') as f: # use with to handle file open/close

    for line in f: # iterate through lines

        line = line.strip().split() # split the line once

        if any(int(line[1]) <= n <= int(line[2]) for n in lst): # check

            output.append(line[:]) # add copy to output

# use lines in output

请注意,这会将line格式保留为split() list str个值,例如:

output == [['SPAC212.07c', '13665', '14555', '1'], ...]