如何在python中打印特定的字符串?

时间:2013-12-18 14:57:12

标签: python

我在文件中有以下字符串:

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

从这些我想从“(”到“)”获取数据并使其成为一行。

输出应该在一行中,如:

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

2 个答案:

答案 0 :(得分: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)'

Bonus功能:如果将其传递给ast.literal_eval(),则会得到一个带整数的Python结构:

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

答案 1 :(得分: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)'

它为数据提供了一个字符串。