Это означает, что указанная переменная не указана ни на что. Я мог бы сгенерировать это так:
SqlConnection connection = null;
connection.Open();
Это вызовет ошибку, потому что, пока я объявил переменную «connection
», она не указала ни на что. Когда я пытаюсь вызвать член «Open
», для его устранения нет ссылки, и он будет вызывать ошибку.
Чтобы избежать этой ошибки:
object == null
. Инструмент Resharper JetBrains определит каждое место в вашем коде, которое имеет возможность ошибки нулевой ссылки, позволяя вам ввести нулевую проверку. Эта ошибка является источником ошибок номер один, IMHO.
Попытайтесь заключить свои операторы в блок 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)
И всегда закрывайте файл, чтобы система могла очистить ваши данные до перед закрытием файла.
Из-за буферизации строка может не отображаться в файле до тех пор, пока вы не назовете flush()
или close()
. Поэтому попробуйте вызвать f.close()
после f.write()
. Также рекомендуется использовать with
с файловыми объектами, он автоматически закроет файл для вас, даже если вы рано выйдете из блока with
из-за исключения или return
.
with open('P4Output.txt', 'w') as f:
f.write(output)
Возможно, вы должны использовать абсолютный путь вместо относительного.
Вам нужно сделать
outFile.flush()
, если вы хотите записать буферное содержимое на диск. Если вы закончите запись в файл, вызов file.close
будет неявно очищать буферные данные перед закрытием файла.