python dictWriter не работает в цикле while [duplicate]

Это означает, что указанная переменная не указана ни на что. Я мог бы сгенерировать это так:

SqlConnection connection = null;
connection.Open();

Это вызовет ошибку, потому что, пока я объявил переменную «connection», она не указала ни на что. Когда я пытаюсь вызвать член «Open», для его устранения нет ссылки, и он будет вызывать ошибку.

Чтобы избежать этой ошибки:

  1. Всегда инициализируйте свои объекты, прежде чем пытаться что-либо с ними делать.
  2. Если вы не уверены, что объект имеет значение null, проверьте его с помощью object == null.

Инструмент Resharper JetBrains определит каждое место в вашем коде, которое имеет возможность ошибки нулевой ссылки, позволяя вам ввести нулевую проверку. Эта ошибка является источником ошибок номер один, IMHO.

15
задан Danny 12 May 2011 в 02:04
поделиться

5 ответов

Вы делали f.close() в конце своей программы?

33
ответ дан heemayl 24 August 2018 в 04:55
поделиться

Попытайтесь заключить свои операторы в блок try / catch, чтобы узнать, происходит ли что-то во время открытия или записи файла:

try:
    outFile = open('P4Output.txt','w')
    outFile.write(output)
    outFile.close()
except IOError as (errno,strerror):
    print "I/O error({0}): {1}".format(errno, strerror)

И всегда закрывайте файл, чтобы система могла очистить ваши данные до перед закрытием файла.

3
ответ дан Artur Carvalho 24 August 2018 в 04:55
поделиться

Из-за буферизации строка может не отображаться в файле до тех пор, пока вы не назовете flush() или close(). Поэтому попробуйте вызвать f.close() после f.write(). Также рекомендуется использовать with с файловыми объектами, он автоматически закроет файл для вас, даже если вы рано выйдете из блока with из-за исключения или return.

with open('P4Output.txt', 'w') as f:
    f.write(output)
32
ответ дан hugomg 24 August 2018 в 04:55
поделиться

Возможно, вы должны использовать абсолютный путь вместо относительного.

-1
ответ дан Soltius 24 August 2018 в 04:55
поделиться

Вам нужно сделать

outFile.flush()

, если вы хотите записать буферное содержимое на диск. Если вы закончите запись в файл, вызов file.close будет неявно очищать буферные данные перед закрытием файла.

8
ответ дан tzot 24 August 2018 в 04:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: