首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得python中的特定字段?

如何获得python中的特定字段?
EN

Stack Overflow用户
提问于 2015-03-12 21:20:12
回答 3查看 58关注 0票数 0

我有两排,如下所示

代码语言:javascript
复制
Tp1g00130_scaffold_1    blastn    exon    20495    20602    .    +    .    
Tp1g00130_scaffold_1    blastn    exon    20650    20804    .    +    .    

我想要做的是合并两行的start (第1行的第3列)和seq结束(第2行的第4列),如果它们具有相同的ID(第1列)。例如,输出将类似于

代码语言:javascript
复制
Tp1g00130_scaffold_1    blastn    exon    20495    20804    .    +    .    

我开了个好头,但没有很好的成绩。

代码语言:javascript
复制
prev = None

with open("test_parse") as fh_in:
    for line in fh_in:
        line = line.strip()
        line = line.split()
        line_id = line[0]
        print line
        if prev is not None and prev == line_id:
            print "yes"
        prev = line_id

有什么帮助吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-12 21:33:23

你快到了。

与其prev仅仅是id,不如把它作为最后一行。这允许我们检查存在性和id (if prev and prev[0] == line[0]:),并获得start和seq (print('{} -> {}'.format(prev[3], line[4])))。

代码语言:javascript
复制
prev = None
with open("test_parse") as fh_in:
    for line in fh_in:
        line = line.strip().split()
        if prev and prev[0] == line[0]:
            print(' '.join(prev).replace(prev[4], line[4]).split())
        prev = line
票数 1
EN

Stack Overflow用户

发布于 2015-03-12 21:40:42

如果您的文件很小,您可以使用临时dict。

代码语言:javascript
复制
records = {}

with open("test_parse") as fh_in:
    for line in fh_in:
        id_, f1, f2, start, end, f4, f5, f6 = line.strip().split()
        if id_ in records:
            records[id_][4] = end
        else:
            records[id_] = [id_, f1, f2, start, end, f4, f5, f6]

for line in records.values():
    print "\t".join(line)
票数 1
EN

Stack Overflow用户

发布于 2015-03-12 21:50:55

如果文件中有标题行,则可以使用DictReader

对于具有x、y和z列标题的文件,可以这样做:

代码语言:javascript
复制
import DictReader

reader = DictReader(open('sample.csv'))
for line in reader:
    print(line['x'], line['z'])

它是csv模块的一部分,在一般情况下是非常有用的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29020394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档