2016-01-26 10 views
7

continuo a ricevere il ConfigParser.NoSectionError: no Sezione: errore 'file'Python ConfigParser.NoSectionError: no Sezione:

mio file di configurazione si presenta come:

[file] 
api_access_id = 123445567 
api_default_org = NAME 
api_secret_key = kjvhkd28unfkjs 
api_base_url = www.fakeurl.com/api 

mio codice è simile:

config = ConfigParser.RawConfigParser() 
configFilePath = 'E:\Python\configfile\test.txt' 
config.read(configFilePath) 

try: 
    api_access_id = config.get('file', 'api_access_id') 
    api_secret_key = config.get('file', 'api_secret_key') 
    api_default_org = config.get('file', 'api_default_org') 
    api_base_url = config.get('file', 'api_base_url') 
except ConfigParser.NoOptionError : 
    print('could not read configuration file') 
    sys.exit(1) 

L'errore è:

Traceback (most recent call last): 
File "E:/Python/Testapi.py", line 13, in <module> 
api_access_id = config.get('file', 'api_access_id') 
File "C:\Python27\lib\ConfigParser.py", line 330, in get 
raise NoSectionError(section) 
ConfigParser.NoSectionError: No section: 'file' 

Process finished with exit code 1 

Qualcuno sa che cosa potrebbe causare questo problema?

+0

Ciao e benvenuto a StackOverflow. Si prega di includere l'errore che si ottiene –

+0

Ciao Marco Grazie, ha appena aggiunto il codice di errore –

+0

Questo è molto strano, non riesco a vedere cosa c'è di sbagliato con questo –

risposta

11

si sta definendo il vostro percorso con backslash:

configFilePath = 'E:\Python\configfile\test.txt' 

Questi vengono interpretati come escape e, di conseguenza, il file corretto non viene caricato. (Purtroppo, il messaggio di errore non aiuta molto in questo caso.) Si sia bisogno di fuggire loro, o utilizzare una stringa grezzo:

configFilePath = r'E:\Python\configfile\test.txt' 
+0

Ciao grazie, glibdud l'ha capito poco prima che tu lo pubblicassi,:) ma grazie per la risposta è stato corretto: D e avrebbe risolto il mio problema se non fossi riuscito a capirlo appena prima –

0

Modificato il file url

configFilePath = 'test.txt' 

come il mio file era già nella cartella della mia applicazione

0

configFilePath = 'E: \ Python \ configfile \ test.txt' non è corretto, quindi il file non viene trovato.
Modifica il tuo codice per qualcosa di simile, per intercettare un simile errore.

import ConfigParser, sys 
config = ConfigParser.RawConfigParser() 
configFilePath = './config.cfg' 
try: 
    config.read(configFilePath) 
except Exception as e : 
    print(str(e)) 
try: 
    api_access_id = config.get('file', 'api_access_id') 
    api_secret_key = config.get('file', 'api_secret_key') 
    api_default_org = config.get('file', 'api_default_org') 
    api_base_url = config.get('file', 'api_base_url') 

except Exception as e : 
    print(str(e),' could not read configuration file') 
print api_access_id, api_secret_key, api_default_org, api_base_url 
sys.exit() 
1

Sì, il percorso del file viene letto erroneamente perché ogni carattere dopo un '\' è sfuggito in Python. Invece fare questo:

configFilePath = 'E:\\Python\\configfile\\test.txt' 

o questo:

configFilePath = 'E:/Python/configfile/test.txt' 
Problemi correlati