2016-03-03 24 views
1

我需要一個配置文件來生成我的腳本。很好地解析python中的多行配置文件

[PATHS] 
elements = elementA,elementB,elementC,elementD,elementE,elementF,elementG,elementH,elementJ,elementK 

正如您在點後注意到線條太長。我無法跟蹤寫入其中的內容,並且看起來不太好。

在我的劇本我下面的閱讀elements

elements = config["PATHS"]["elements"].split(",") 

是否有來處理這一個更好的辦法嗎?我喜歡的東西,包括換行符和製表符,例如:

[PATHS] 
elements = 
    - elementA 
    - elementB 
    - elementC 
    - elementD 
    - elementE 
    - elementF 
    - elementG 
    - elementH 
    - elementJ 
    - elementK 

從有經驗的任何建議也歡迎。

我試圖分裂與.split("\n\t\t- "),但沒有做的工作


print("1",config["PATHS"]["elements"]) 

1 
- elementA 
- elementB 
- elementC 


print("2",config["PATHS"]["elements"].strip()) 
2 - elementA 
- elementB 
- elementC 


print("3",config["PATHS"]["elements"].strip().split('\n')) 
3 ['- elementA', '- elementB', '- elementC'] 
+0

什麼是變量的類型:'config'? –

+1

'config type:';如果你要求'元素',它應該是一個字符串列表 –

+0

'-'對你很重要嗎?這些元素是否可以分別放在他們自己的路線上? –

回答

2

這可能會做你想要什麼:

elements = [ 
    element.strip(' -') 
    for element in config["PATHS"]["elements"].strip().split('\n')] 
+0

似乎能夠完成這項工作!出於好奇,首先應用strip()和split()中的哪一個?想知道內部發生了什麼...... –

+0

'strip()'去除默認的空格,'split('\ n')'創建一個列表,當它看到一個'\ n'時,分隔元素,'strip(' - ') ''從這些元素中刪除'-' –

+0

我一直偏愛's.splitlines()'和's.split('\ n')'。 'splitlines'是操作系統行結束的意識,再加上我發現無參數函數調用看起來更清潔。 – PaulMcG