2015-05-13 2 views
0

Я искал страницу для ответа, но мог найти только похожие темы, которые не касаются моего конкретного вопроса. Я пытаюсь создать некоторые последовательности Dna, чтобы поиграть с biopython и записать их все в txt.file.Запись нескольких отпечатков в текстовом файле

import random as r 

def random_dna_sequence(length): 
    return ''.join(r.choice('ACTG') for _ in range(length)) 

for _ in range(15): 
    dna = random_dna_sequence(30) 
    print (dna) 

with open('dna.txt', 'w+') as output: 
    output.write(dna) 

Однако, очевидно, это только запись последней строки в файл. Как я могу записать все строки в файл (если необходимо, по очереди) или как я могу изменить код генерации ошибок, чтобы это сделать?

поздравления, BERT

ответ

3

Ты супер близко!
Вы просто должны переместить ваш цикл внутри с блоком:

with open('dna.txt', 'w+') as output: 
    for _ in range(15): 
     dna = random_dna_sequence(30) 
     output.write(dna) 
+0

святой коровы это работает! большое спасибо. есть еще один последний вопрос, который я хотел бы задать, хотя: когда я печатаю его, каждый «диапазон» (в данном случае 15) отображается в отдельной строке. как я могу получить этот формат в файл (где он отображается как одна длинная строка символов)? обычно это просто вопрос правильного использования «/ n», но в этом случае я понятия не имею, где его разместить. – grindbert

+0

@grindbert: выпишите '' \ n'' после каждой последовательности dna в свой файл. Python 'print' делает это автоматически, но запись в файле не – inspectorG4dget

+0

ну, теперь я немного смущен. Я использовал «/ n» вместо «\ n». большое спасибо! – grindbert