печать перенаправлена ​​в файл ИНОГДА приводит к неполной распечатке в Python - PullRequest
1 голос
/ 03 сентября 2011

Я хочу сохранить список в файл, чтобы просмотреть его и записать в файл.Все в порядке.Но ИНОГДА (!?!?) Список написан не полностью, он перестает отображаться в середине элемента.Ошибка не возникает, он продолжает выполнение кода без вывода сообщений.Я пробовал несколько способов записать это, несколько версий Python (2.4, 2.5, 2.7), и это все то же самое.Это иногда работает, иногда нет.Когда он распечатывается в окно терминала, а не в файл, он работает без сбоев.Я что-то упустил?

это все

...    

from bpnn import *

...

# save input weights for later use:
writewtsi = open("c:/files/wtsi.txt", "w")
for i in range(net.ni):
    print>>writewtsi, net.wi[i]

bpnn - отсюда модуль нейронной сети: http://python.ca/nas/python/bpnn.py

Ответы [ 3 ]

2 голосов
/ 04 сентября 2011

Закройте файл после завершения всех операций записи, чтобы гарантировать, что любое кэширование записи будет сброшено на диск с помощью:

writewtsi.close()
0 голосов
/ 04 сентября 2011

использовать

.flush()

примерно так:

...     
from bpnn import *
...

# save input weights for later use:
writewtsi = open("c:/files/wtsi.txt", "w")
for i in range(net.ni):
    print>>writewtsi, net.wi[i]
    writewtsi.flush()

Или вы можете сделать файл небуферизованным с помощью третьего параметра open ():

...     
from bpnn import *
...

# save input weights for later use:
writewtsi = open("c:/files/wtsi.txt", "w", 0)
for i in range(net.ni):
    print>>writewtsi, net.wi[i]
0 голосов
/ 04 сентября 2011

Устранена ли проблема, если вы используете:

with open("c:/files/wtsi.txt", "w") as writewtsi:
    for i in range(net.ni):
        print>>writewtsi, net.wi[i]            
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...