2016-08-29 2 views
0

Использование питона, у меня есть следующий список:Как написать каждый элемент списка в каждой строке текстового файла?

data = ['element0', 'element1', 'element2', 'element3'] 

И я хочу написать каждый элемент, в новую линию «myfile.txt», так что я пытался это:

for x in data: 
    open("myfile.txt", "w").write(x + "\n") 

что дает мне это (внутри «myfile.txt»):

element3 

Я похож каждый раз, когда он проходит через петлю, он записывает элемент в верхней части последнего.

Желаемый результат (внутри "myfile.txt"):

element0 
element1 
element2 
element3 

ответ

4

Просто откройте файл объекта раз:

with open("myfile.txt", "w") as fobj: 
    for x in data: 
     fobj.write(x + "\n") 

Я использую файл как менеджеру контекста путем передачи его в инструкцию with; это гарантирует, что файл будет закрыт снова после завершения кода кода.

Каждый раз, когда вы открываете файл-объект с режимом 'w' (запись), файл усечен, освобождается. Вам нужно будет использовать режим 'a' (append), чтобы предотвратить усечение файла.

Однако открытие файла только один раз намного эффективнее.

Смежные вопросы