python读取table文件

发布时间:2019-09-20 07:27:16编辑:auto阅读(2145)


    有个table文件, 有时候需要处理header , 可以用linecache 模块

    #!/usr/bin/env python
    # -*- coding: ascii -*-
    import linecache
    import fileinput
    import sys
    from collections import defaultdict
    inputFile = sys.argv[1]
    headerLine = linecache.getline(inputFile, 1).strip()
    #print(headerLine)
    Probenames = headerLine.split("\t")[1:]
    inputH = open(inputFile, "r")
    
    d = defaultdict(list)
    for line in inputH:
        if "Sample" not in line:
            z = line.rstrip().split("\t")[1:]
            for num, p_data in enumerate(z):
                if p_data != "":
                    d[Probenames[num]].append(p_data)
    inputH.close()
    print("NameProbe\tdata")
    for p in d:
        for x in d[p]:
            #print(x, d[p])
            print("{0}\t{1}".format(p, x))


    当然也可以用 fileinput 模块


    参考:  https://docs.python.org/3/library/fileinput.html#fileinput.isfirstline

关键字