我试图用一些循环解析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]
答案 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'], ...]