2015-10-26 70 views
0

嘗試了不同數量的組合,無效。Python:從一串數字中刪除隨機空格

基本上,這是我這串數字:

20101002 100224 1 1044  45508 1001 1002 1003 1004 1005 1006 

輸出後我:

20101002 100224 1 1044 45508 1001 1002 1003 1004 1005 1006 

基本上所有的空格前的最後一個號碼後要被修剪。最重要的是,數字之間只應該有一個空格。

我要補充一點,我目前擁有的代碼如下,並在字符串的開始和結束只用空格涉及:

row = line.strip().split(' ') 

任何幫助非常感謝,謝謝!

+0

你嘗試過什麼嗎? –

+0

使用_regex_和're.sub()'方法 – CrakC

回答

5

s = '20101002 100224 1 1044  45508 1001 1002 1003 1004 1005 1006' 
new_s = ' '.join(s.split()) 
print(new_s) 

產生

20101002 100224 1 1044 45508 1001 1002 1003 1004 1005 1006 

基本上,存在涉及兩個步驟:

第一我們分割字符串成單詞與s.split(),它返回這個列表

['20101002', '100224', '1', '1044', '45508', '1001', '1002', '1003', '1004', '1005', '1006'] 

然後我們通過列表來' '.join,利用它們之間的空格字符

+0

我得到',,,,2,0,1,0,1,0,0,2,,,1,0,0,2,2,4 1,...,1,0,4,4,...,4,5,5,0,8,...,1,0,0,1,...,1,0,..., 0,2,,1,0,0,3,,,1,0,0,4,,,1,0,0,5,,,1,0,0,6,「 」'回來。難道是因爲我在使用Python 3嗎? – user4659009

+0

我已經嘗試了python 3.4.3上的代碼,它工作正常。複製和粘貼 – Pynchia

+0

它看起來很好,當我將它打印在終端,但是當我將它導出到一個CSV它改變格式:/'開放(bad_csv_file,「W」)爲MYFILE: WR = csv.writer(MYFILE) 在bad_csv行: 行= ''。加入(line.split()) 打印(行) wr.writerow(行)'任何想法,爲什麼? – user4659009

0

默認情況下Python的str.split方法按空白進行分割其加入列表中的所有元素。

a = "20101002 100224 1 1044  45508 1001 1002 1003 1004 1005 1006" 

" ".join(a.split()) 
3
import re 
text = "20101002 100224 1 1044  45508 1001 1002 1003 1004 1005 1006" 
re.sub(r"\s+", " ", text) 
#=> 20101002 100224 1 1044 45508 1001 1002 1003 1004 1005 1006