在python中使用适当的缩进剥离行

在python中使用适当的缩进剥离行,python,arrays,string,Python,Arrays,String,输入: 我必须去掉最后两行,然后给它分配两个数组,读取每个字符并获得输出,如下图所示 剥离后,线条应采用以下格式: $target: ENSG00000097007|ABL1 length: 3075 miRNA : hsa-miR-203 length: 22 mfe: -30.5 kcal/mol p-value: 0.606919 position: 2745 target 5' C G C 3' GUGGUCCUGGAC

输入:

我必须去掉最后两行,然后给它分配两个数组,读取每个字符并获得输出,如下图所示

剥离后,线条应采用以下格式:

$target: ENSG00000097007|ABL1
length: 3075
miRNA : hsa-miR-203
length: 22

mfe: -30.5 kcal/mol
p-value: 0.606919

position:  2745
target 5'   C             G     C 3'
             GUGGUCCUGGACA   CAC    
             CACCAGGAUUUGU   GUG    
miRNA  3' GAU             AAA     5'
如果行字符是从第1行读取的,那么它应该用小写字母打印,如果它是从第二行读取的,那么它应该用大写字母打印

程序的最终输出应为 “Gaucacaguauguaaagug”

我们试图读取它的代码并没有像在输入中看到的那样将行完全对齐

下面是我们使用的代码:

   CACCAGGAUUUGU   GUG    
GAU             AAA     
对问题的进一步输入

 import fileinput
 import sys
 from sys import argv
 script, filename = argv
 file = open(filename)
 og1 = "AGUUCCUUUGUUUUGGUGACUG"
 pattern = "              "
 pattern1 = "miRNA  3'"
 file = open(filename)
 for line in file:
    if line.startswith(pattern):
        n = file.next()
        # print n[9:],#  bound mirna
        for i in range(0, len(og1)):
            print og1[i],
        print "\n" 
        for j in range(0,len(n)):
            print n[j],'

我将按行分割,抓取最后两行,然后在压缩在一起的两行上迭代,并使用非
”的字符

可能更安全的结果是返回:

def combinebases(base_data):
    lines = base_data.splitlines()[-2:]
    output = list()
    lines[0] = lines[0].lower()
    for ch1, ch2 in zip(*lines):
        output.append(max(ch1, ch2))
    return ''.join(output[10:-4])

你能解释一下这一行的确切意思吗?打印拆分2[0]+拆分1[0]。lower()+split2[1]+split1[1]。lower()我是python的新手,无法获取代码,我想说的是,所有的输入都不一样。。和其他情况一样,输入是完全不同的。因此,我需要知道如何打印,如果它从第一行读取意味着它是小写的,如果从第二行读取意味着它是大写的,并且在单个文件的最终输出中,如上@AshokaLella@ramko,split()函数基于空格分割线。对于最后一行拆分1=[“caccaggauugu”,“GUG”]。对于最后一行split2=[“miRNA”,“3'”,“GAU”,“AAA”,“5'”。@ramko,如果您可以粘贴输入文件的更多内容。我可以进一步概括代码,并添加有问题的输入
file = open(filename)                                          
for segment in file.read().split("\n\ntarget"):                          
    interested_lines = segment.split('\n')[-3:-1]  #Fetch last two lines 
    split1 = interested_lines[0].split()                                 
    split2 = interested_lines[1].split()[2:-1]                           
    for i in range(0,len(split1)<len(split2)):                           
        split1.append("")                                                

    req = ""                                                             
    for i in range(0,len(split2)):                                       
        req += split2[i]+split1[i].lower()                               
    for j in range(i+1,len(split1)):                                     
        req += split1[j]                                                 
    print req
AguguuCAAucccaGAGucccu
CgugUcggggGCAgggaggga
AguccuugACggaAagagaggu
AuugguuACAcgUCUGAUGACA
UgagucaUUaccauugCCAAA
def combinebases(base_data):
    lines = base_data.splitlines()[-2:]
    output = list()
    lines[0] = lines[0].lower()
    for ch1, ch2 in zip(*lines):
        output.append(max(ch1, ch2))
    return ''.join(output[10:-4])
    return re.search("(?<=miRNA  3' )[augc]+", ''.join(output), re.I).group()
>>> txt = """$target: ENSG00000097007|ABL1
length: 3075
miRNA : hsa-miR-203
length: 22

mfe: -30.5 kcal/mol
p-value: 0.606919

position:  2745
target 5'   C             G     C 3'
             GUGGUCCUGGACA   CAC    
             CACCAGGAUUUGU   GUG    
miRNA  3' GAU             AAA     5'"""

>>> combinebases(txt)
'GAUcaccaggauuuguAAAgug'