Python-从测试文件中选择特定值
我是python的绝对初学者,我想从第2列中获取字段,从文本文件中获取第3行,如下所示:Python-从测试文件中选择特定值,python,file,text,Python,File,Text,我是python的绝对初学者,我想从第2列中获取字段,从文本文件中获取第3行,如下所示: 176a AUGCACGUACGUA ACGUA AGUCU 156b GACUACAUGCAUG GCAUA AGCUA 172e AGCUCAGCUAGGC CGAGA CGACU >>> with open('test') as f: ... extract_field(f, row=3, col=2) ... 'AGCUCAGCUAGGC' (文本由空格分隔)。有什么
176a AUGCACGUACGUA ACGUA AGUCU
156b GACUACAUGCAUG GCAUA AGCUA
172e AGCUCAGCUAGGC CGAGA CGACU
>>> with open('test') as f:
... extract_field(f, row=3, col=2)
...
'AGCUCAGCUAGGC'
(文本由空格分隔)。有什么简单的方法可以做到这一点吗?如果你的文件不是太大,我会读一次,然后将每行拆分,得到我想要的部分:
with open(myfile) as file_in :
lines = file_in.readlines()
third_line = lines[2]
second_column = third_line.split(' ')[1]
print second_column
您可以拆分文本并创建一个列表列表,其中每个子列表都是一行,然后使用
行[row-1][column-1]
从列表中提取所需内容
f = open('test.txt', 'r')
lines = f.readlines()
f.close()
rows = []
for line in lines:
rows.append(line.split(' '))
print rows[2][1]
如果我有一个文件
test
,其中包含您的示例数据,那么下面将执行此任务:
def extract_field(data, row, col):
'''extract_field -> string
`data` must be an iterable file object or an equivalent
data structure which elements contains space delimited
fields.
`row` and `col` declares the wished field position which
will be returned. '''
# cause first list element is 0
col -= 1
# jump to requested `row`
for _ in xrange(row):
line = next(data)
# create list with space delimited elements of `line`
# and return the `col`'s element of these list
return line.split()[col]
像这样使用它:
176a AUGCACGUACGUA ACGUA AGUCU
156b GACUACAUGCAUG GCAUA AGCUA
172e AGCUCAGCUAGGC CGAGA CGACU
>>> with open('test') as f:
... extract_field(f, row=3, col=2)
...
'AGCUCAGCUAGGC'
google fu:python解析以空格分隔的文本文件可能与其他许多文件重复