Python-从测试文件中选择特定值

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' (文本由空格分隔)。有什么

我是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'

(文本由空格分隔)。有什么简单的方法可以做到这一点吗?

如果你的文件不是太大,我会读一次,然后将每行拆分,得到我想要的部分:

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解析以空格分隔的文本文件可能与其他许多文件重复