2016-03-15 51 views
0

我正在尋找一些python編碼的輸入。我的輸入文本文件如下所示如何修剪之前和之後的空白「:」

key1 <space> <space>: <space> value1 
key2:value2 
key3:<spaces><space>value3 

要麼:或 - 將在那裏進行鍵值分離。我要像

key1 <1space>:<1space>value1 
key2 <1space>:<1space>value2 
key3 <1space>:<1space>value3 

回答

5

一個均勻的輸出,我會用re.sub

re.sub(r'\s*:\s*', ' : ', s) 

DEMO

1

或者沒有正則表達式:

key, value = [k.strip() for k in line.split(':')] 

工作只有當你確定是正好有一個每行:

+0

是的,你的更好 – pandorym

0

不使用正則表達式或列表理解:

key, value = line.replace(' ','').split(':') 
'{} : {}'.format(key, value) 

這取出從輸入線上的所有空間,這可能是一個問題,如果有空格鍵或值使用。