我讀通過量的格式倒帶文件指針到當前行的Python文件IO
>GeneID
ACTCTCTCTATATATATATAT\n
GCTCTGCTTCTAGAGAGAGTG\n
TCTATTTGTTTATATATCTTT\n
>GeneID
GCTCTGCTTCTAGAAATTCCC\n
ACTCTGTATATATTTTCAAAA\n
GCTCTGCTTCTAGAGAGAGTG\n
每個基因啓動與一>那麼唯一ID的大型基因文件。來到該基因的核苷酸行後。 不幸的是,這個文件是這樣生成的,因此每一行序列之間都有換行符。
我需要讀取每個序列作爲一個連續的字符串。所以,我一直在使用下一個方法(如下所示)。
for line in filer:
if line.startswith(">"):
# Find Sequences
seq_seg = next(filer)
seq = ""
# Concatenate lines until find next gene
while not (seq_seg.startswith(">")):
seq += seq_seg.strip() # Get rid of '\n'
seq_seg = next(filer)
我覺得,因爲在下次拜訪,使while循環失敗的情況我的腳本只撿基因的一半的文件,文件指針指向下一個基因ID,然後當for循環的下一次迭代執行時,它將移動到下一個文件。
有沒有辦法將文件指針倒回到前一行,所以我的for循環捕捉到一個新的基因?
我見過類似的問題,但他們沒有解決,我通過文件與
for line in file:
#do stuff
你真的真的不想在迭代器上調用'next',而已經循環遍歷同一個迭代器,除非你想完全按照你的方式完成迭代。 – abarnert