2016-01-26 11 views
7

Ciągle otrzymuję ConfigParser.NoSectionError: nie Sekcja: error 'file'Python ConfigParser.NoSectionError: nie Sekcja:

Mój plik config wygląda następująco:

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

Mój kod wygląda następująco:

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) 

błąd jest:

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 

Czy ktoś wie, co może być przyczyną tego problemu?

+0

Witam i zapraszam do Stackoverflow. Proszę podać błąd, który otrzymałeś –

+0

Cześć Marco Dziękujemy, po prostu dodano kod błędu –

+0

To jest bardzo dziwne, nie widzę, co jest nie tak z tym –

Odpowiedz

11

Ty definiujący ścieżkę z ukośniki:

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

nich dostać interpretowane jako znaki ucieczki, w wyniku czego prawidłowy plik nie jest ładowany. (Niestety, komunikat o błędzie nie pomaga w tym przypadku.) Albo trzeba im uciec, lub użyć surowego ciąg:

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

Cześć dzięki, że glibdud zorientował się o tym tuż przed wysłaniem,:), ale dzięki za odpowiedź była poprawna: D i chciałbym rozwiązać mój problem, jeśli nie zdołałem tego rozgryźć przedtem –

0

Zmieniono adres URL pliku do

configFilePath = 'test.txt' 

jak mój plik był już w folderze mojej aplikacji

0

configFilePath = 'E: \ Python \ configfile \ test.txt' jest niepoprawny, więc plik nie zostanie odnaleziony.
Zmień kod w taki sposób, aby uwięzić taki błąd.

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

Tak, twoja ścieżka do pliku jest źle odczytana, ponieważ każdy znak po znaku "\" jest w Pythonie. Zamiast to zrobić:

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

lub to:

configFilePath = 'E:/Python/configfile/test.txt' 
Powiązane problemy