2017-02-14 11 views
-2

Мой код выглядит следующим образом:Как написать время цикла в CSV файл

x=0 
while (x<3): 
    print('purple'), 
    print('yellow'), 
    print({x}) 
    x=x+1 

Я хочу, чтобы войти эти данные в файл CSV с именем «daffodils.csv». Как это сделать, чтобы итерации не писали друг друга?

Например, если я запускал программу в два раза, мой файл CSV будет выглядеть следующим образом:

purple yellow 0 
purple yellow 1 
purple yellow 2 
purple yellow 0 
purple yellow 1 
purple yellow 2 

Благодарности

+0

FYI: Это не правильный файл CSV (если это не один столбец). – TemporalWolf

+0

'print ({x})' создает и печатает набор *, содержащий 'x', это действительно то, что вы хотите? – jonrsharpe

+0

Похоже, что слова в вопросе спрашивают [Как вы присоединяетесь к файлу?] (Http://stackoverflow.com/questions/4706499/how-do-you-append-to-a-file), но блоки кода, похоже, не имеют никакого отношения к файлу io ... –

ответ

-1

Просто используйте:

t = open("daffodils.csv", "a+") 
x=0 
while (x<3): 
    t.write('purple'), 
    t.write('yellow'), 
    t.write({x}) 
    t.write("\n") 
    x=x+1 
t.close() 

a открывает файл в append mode, и + создает его, если он еще не существует.

+2

'.append'? Это будет «AttributeError» –

+0

Jammy, вы можете протестировать эту программу перед публикацией. –

+0

О, извините, не концентрировался, позвольте мне просто отредактировать его –

1

Просто используйте,

with open('test.txt', 'a') as f: 
    for x in range(3): 
     s = 'purple yellow {}\n'.format(x) 
     f.write(s) 

Или использовать csv, как вы хотите,

import csv 

with open('test.csv', 'a') as f: 
    writer = csv.writer(f, delimiter=' ') 
    for x in range(3): 
     writer.writerow(['purple', 'yellow', x]) 
+0

'for x in range (3):' удаляет необходимость устанавливать значение по умолчанию, а также увеличивать. – TemporalWolf

+1

@TemporalWolf, thx. просто отредактирован. – SparkAndShine