0

コード:

def readFasta(filename):
    """ Reads a sequence in Fasta format """
    fp = open(filename, 'rb')
    header = ""
    seq = ""
    while True:
        line = fp.readline()
        if (line == ""):
            break
        if (line.startswith(b'>')):
            header = line[1:].strip()
        else:
            seq = fp.read().replace(b'\n',b'')
            seq = seq.replace(b'\r',b'')          # for windows
            break
    fp.close()
    return (header, seq)

FASTAsequence = readFasta("MusChr01.fa")

'' の前の b が必要なのは、バイト モードだからです。問題は、実行時に fp.read.replace と seq.replace が文字列内のすべてを削除することです。読み取りが正しく機能していることは知っています。

def readFasta(filename):
    """ Reads a sequence in Fasta format """
    fp = open(filename, 'rb')
    header = ""
    seq = ""
    while True:
        line = fp.readline()
        if (line == ""):
            break
        if (line.startswith(b'>')):
            header = line[1:].strip()
        else:
            seq = fp.read()
            break
    fp.close()
    return (header, seq)

FASTAsequence = readFasta("MusChr01.fa")

完全に正常に動作します。何が起きてる?

4

2 に答える 2