Python 2.7 вносит путаницу - PullRequest
0 голосов
/ 08 марта 2012

Я пытаюсь запустить следующий сценарий:

#Contents of logging.py
import sys
import os


global gLogfile
global gLogFileFlag

#-----------------------------------------------------------------------------------------
def initLogging():
    global gLogFileFlag
    try:
        glogFile = 'D:\logggggging.log'
        print gLogFile
        fileObject = open(gLogFile, 'w')
        gLogFileFlag = True
        fileObject.close()
    except:
        gLogFileFlag = False



#-----------------------------------------------------------------------------------------
def logIt(text):
    sys.stdout.write(text)
    if(gLogFileFlag):
        hFile = open(gLogFile, 'a')
        hFile.write(text)
        hFile.close()


#-----------------------------------------------------------------------------------------


#contents of test_defualt.py
from logging import initLogging
from logging import logIt

def main():
    initLogging()
    logIt("log something")

main()

Когда я выполняю приведенный выше код, используя клавишу F5, в результате в оболочке записывается «что-то записать», но нетфайл создан, и в него ничего не записано, если он уже существует.

Пожалуйста, помогите.

1 Ответ

1 голос
/ 15 мая 2012

Вы замаскировали свою опечатку с помощью простого оператора кроме. Если вы хотите проверить, не записан ли файл в инструкции try, используйте что-то вроде, кроме IOError.

Работающий logging.py (для тех, кто не видел ошибку в примере):

import sys
import os

#-----------------------------------------------------------------------
def initLogging():
    global gLogFileFlag
    global gLogFile
    try:
        gLogFile = './logggggging.log'
        print gLogFile
        fileObject = open(gLogFile, 'w')
        gLogFileFlag = True
        fileObject.close()
    except IOError:
        gLogFileFlag = False

#------------------------------------------------------------------------
def logIt(text):
    sys.stdout.write(text)
    if(gLogFileFlag):
        hFile = open(gLogFile, 'a')
        hFile.write(text)
        hFile.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...