2015-12-21 31 views
1

我對python很陌生。在python中重新排列給定句子中的單詞

我得到了固定格式的COM端口串行數據作爲一個像這樣的字符串:

"21-12-2015 10:12:05 005 100 10.5 P" 

格式是「日期時間ID統計數據數據」

在這裏,我不需要計數和第一個數據,而是我想添加一個數據,並通過另一個COM端口再次發送。

我要重新排列這一點,並給輸出

21-12-2015 10:12:05 
    SI.NO: 1451 
    Result: 10.5 P 

我嘗試:

ip = '21-12-2015_10:12:05_005_100_10.5 P' 

dt = ip[0]+ip[1]+ip[3]+..... #save date as dt 
tm = ip[9]+ip[10]+ip[11]+.... etc 

,並在年底

Result = dt + tm +"\n" + "  "+ "SI.NO"+....... 

請提出了一些很好的概念在做這個python 2.7.11 如果你可以提一些想法,我會搜索代碼。

謝謝

+0

你好,歡迎來到StackOverflow。在這裏提問時,這有助於做兩件事:具體說明您要做什麼,並說明您已經採取了哪些措施來解決問題。例如:你的數據好像是格式化的,這樣第一步就是用下劃線分割它;你有沒有試圖尋找如何做到這一點? –

+0

感謝您的建議,我改變了它。 –

+0

'SI.NO:1451'從哪裏來?或者這總是一樣的? – timgeb

回答

1

您可以在空白字符串分割成田與split和使用建立一個新的字符串Python的string formatting syntax

ip = "21-12-2015 10:12:05 005 100 10.5 P" 
fields = ip.split() 
s = '{date} {time}\n SI.NO: {sino}\n Result: {x} {y}'.format(
     date=fields[0], 
     time=fields[1], 
     sino=1451,  # Provide your own counter here 
     x=fields[4], 
     y=fields[5]) 
print s 

21-12-2015 10:12:05 
    SI.NO: 1451 
    Result: 10.5 P 

它不是從你的問題你的領域是否清晰用空格或下劃線分隔。在後一種情況下,請使用fields = ip.split('_')

相關問題