python - 函数打印整个文件,但只在函数外打印一行

时间:2015-07-14 17:00:51

标签: python python-2.7

我正在尝试在文件中搜索我想要的染色体,例如chr1

我解析了文件,只得到函数get_columns()中我想要的列。当我在函数中打印解析的字段时,它工作正常。但是,当我尝试使用返回的文件搜索单词时,似乎它只给了我第一行。我将变量search_file分配给函数,当我打印出来时,我只得到我解析文件的第一行。如何在第一个函数中解析的整个文件中搜索我的染色体?

#! /usr/bin/python    

input_file = open( "Code_Work/GenFile.txt", "rU" )

def get_columns (myFile):    
    for aRow in myFile:
        no_new = aRow.lstrip("\n")
        split = no_new.split('\t')
        sec_split = split[8].split(';')

        new_file =  split[0] + "\t" + split[3] + "\t" + split[4] + "\t" + split[6]  + "\t"  + sec_split[0]  + "\t" + sec_split[1]  + "\t" + sec_split[2]

        return new_file            

search_file = get_columns(input_file)


import re
original = raw_input('Enter a word:')
print re.findall(r"\b" +  re.escape(original) + "[\w]*", search_file)

input_file.close()

1 个答案:

答案 0 :(得分:1)

您的return循环中有一个for语句。这意味着你的函数总是在第一行之后返回。