2013-11-09 4 views

ответ

3

Вы повторно открываете файл для записи каждой итерации цикла, который очищает файл каждый раз.

Переместить файл открытия из цикла:

L = ['abc','def','ghi'] 

with open('outfile.txt', 'w') as outfile: 
    for e in L: 
     print (e, file=outfile) 

Открытие файла в режиме w явно укорачивает его (удаляет все данные). Цитируя open() function documentation:

Другие общие ценности 'w' для записи (усечения файл, если он уже существует) [...]

Если есть открыть файл для каждой итерации, по крайней мере открыть файл для добавления вместо этого, используя 'a':

L = ['abc','def','ghi'] 

for e in L: 
    with open('outfile.txt', 'a') as outfile: 
     print (e, file=outfile) 
4

Это как:

L = ['abc', 'def', 'ghi']  
with open('outfile.txt', 'w') as outfile: 
    for e in L: 
     # You could also do `outfile.write(e)` 
     print(e, file=outfile) 

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

abc 
def 
ghi 

Ваш текущий метод открытия файла в режиме записи с каждой итерации для цикла. Это означает, что его содержимое продолжает переписываться.

Помните, что каждый раз, когда вы открываете файл в режиме записи, все его содержимое очищается.

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