2013-12-18 49 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) 
相关问题