用tex数字母

2024-10-01 22:35:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有如下文本文件。。。在

s1

MPPRRSIVEVKVLDVQKRRVPNKHYVYIIRVTWSSGATEAIYRRYSKFFDLQMQMLDKFP MEGGQKDPKQRIIPFLPGKILFRRSHIRDVAVKRLIPIDEYCKALIQLPPYISQCDEVLQ FFETRPEDLNPPKEEHIGKKKSGNDPTSVDPMVLEQYVVVADYQKQESSEISLSVGQVVD

s2

MAEVRKFTKRLSKPGTAAELRQSVSEAVRGSVVLEKAKLVEPLDYENVITQRKTQIYSDP LRDLLMFPMEDISISVIGRQRRTVQSTVPEDAEKRAQSLFVKECIKTYSTDWHVVNYKYE DFSGDFRMLPCKSLRPEKIPNHVFEIDEDCEKDEDSSSLCSQKGGVIKQGWLHKANVNST

一。 . . 在

我想在输出的每个序列中计算字母'p'

>; s1:10

>; s2:20分

如下所示实现这个python脚本

infile=open("file1.txt",'r')

out=open("file2.csv",'w')

for line in infile:

     line = line.strip("\n")

   if line.startswith('>'):

        name=line

   else:

        pattern = line.count('P') 

        print '%s:%s' %(name,pattern)

        out.write('%s:%s\n' %(name,pattern))

它读取行并给出如下结果

>; 比例1:2

>; 比例1:3

>; s1:5

>; s2:10分

>; s2:10分

但我只想说

>; s1:10

>; s2:20分 . . . 在

有人能帮忙吗。。。在

提前谢谢 倪


Tags: namegtlineopenoutinfile比例pattern
2条回答

不要逐行分析文件。只需迭代整个文件字符,一个字符一个字符地计算您要查找的字符的出现次数。在

total = 0
for line in infile:
    line = line.strip("\n")
    if line.startswith('>'):
        name = line
    else:
        pattern = line.count('P') 
        total += pattern
        print '%s:%s' %(name,pattern)

#this goes outside the for loop
out.write('%s:%s\n' %(name,total))

相关问题 更多 >

    热门问题