2016-01-26 34 views
7

我不斷收到ConfigParser.NoSectionError:無節: '文件' 的錯誤的Python ConfigParser.NoSectionError:無節:

我的配置文件看起來像:

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

我的代碼如下所示:

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) 

的錯誤是:

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 

有誰知道可能會導致這個問題?

+0

您好,歡迎#1。請包括您收到的錯誤 –

+0

嗨Marco謝謝,剛添加錯誤代碼 –

+0

這很奇怪,我看不出這有什麼問題 –

回答

11

你定義與反斜槓路徑中的文件夾中:

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

這些得到演繹得作爲轉義,並因此正確的文件未被加載。 (遺憾的是,該錯誤消息沒有太大的幫助在這種情況下。)您也需要逃跑,或使用原始字符串:

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

嗨,感謝glibdud在你發佈之前就明白了這一點: ),但感謝你的回答是正確的:如果我之前沒有設法解決我的問題,我會解決問題 –

0

修改了文件鏈接到

configFilePath = 'test.txt' 

爲我的文件已經是我的申請

0

configFilePath = 'E:\ Python的\ CONFIGFILE \ test.txt的'是不正確的,所以文件沒有找到。
將你的代碼修改成這樣的東西來捕獲這樣的錯誤。

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

是的,你的文件路徑被讀取錯誤,因爲'\'後面的每個字符在Python中被轉義。相反,這樣做:

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

或本:

configFilePath = 'E:/Python/configfile/test.txt' 
相關問題