2013-12-18 79 views
-4

我有一個文件中的follwing字符串:如何在python中打印特定的字符串?

736.199070736: LOG_MOD_L0_RECEIVE_TXBRP_CONTROL(0, 
0x0075007f, 
0x005500dd, 
0x000a00f5) 

這些我想從取數據「(」到「)」,使之成爲一條線。

輸出應該是一個單一的一行:

(0, 0x0075007f, 0x005500dd, 0x000a00f5) 
+0

始終在'code'和文本之間添加一行以使格式化工作。 – jwarner112

+2

向我們展示代碼,您嘗試去做。 – greg

回答

0

你可以使用正則表達式:

import re 

string = """736.199070736: LOG_MOD_L0_RECEIVE_TXBRP_CONTROL(0, 
0x0075007f, 
0x005500dd, 
0x000a00f5)""" 

result = re.search(r'\(.*\)', string) # matches anything between parenthesis 

result.group() 

'(0, 0x0075007f, 0x005500dd, 0x000a00f5)' 

這使你的數據作爲一個字符串。

+0

其實這不是一個字符串。考慮這個數據在一個文件中(我的意思是逐行)。並且從「(」到「)」加入到一行中。 – user3082400

+0

它介於引號之間,它絕對是一個字符串。在你的文章開頭,你說,「我在文件中有下面的字符串」。也許你不想要一個字符串,但這就是我的代碼返回 – Totem

2

如果你想成爲一個單行:

''.join(''.join(text.splitlines()).partition('(')[1:]) 

演示:

>>> text = '''\ 
... 736.199070736: LOG_MOD_L0_RECEIVE_TXBRP_CONTROL(0, 
... 0x0075007f, 
... 0x005500dd, 
... 0x000a00f5) 
... ''' 
>>> ''.join(''.join(text.splitlines()).partition('(')[1:]) 
'(0, 0x0075007f, 0x005500dd, 0x000a00f5)' 

獎金功能:如果你通過這到ast.literal_eval()你得到一個Python結構,而不是整數:

>>> from ast import literal_eval 
>>> literal_eval(''.join(''.join(text.splitlines()).partition('(')[1:])) 
(0, 7667839, 5570781, 655605) 
相關問題