我有一个文件中的follwing字符串:如何在python中打印特定的字符串?
736.199070736: LOG_MOD_L0_RECEIVE_TXBRP_CONTROL(0,
0x0075007f,
0x005500dd,
0x000a00f5)
这些我想从取数据“(”到“)”,使之成为一条线。
输出应该是一个单一的一行:
(0, 0x0075007f, 0x005500dd, 0x000a00f5)
我有一个文件中的follwing字符串:如何在python中打印特定的字符串?
736.199070736: LOG_MOD_L0_RECEIVE_TXBRP_CONTROL(0,
0x0075007f,
0x005500dd,
0x000a00f5)
这些我想从取数据“(”到“)”,使之成为一条线。
输出应该是一个单一的一行:
(0, 0x0075007f, 0x005500dd, 0x000a00f5)
你可以使用正则表达式:
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)'
这使你的数据作为一个字符串。
其实这不是一个字符串。考虑这个数据在一个文件中(我的意思是逐行)。并且从“(”到“)”加入到一行中。 – user3082400
它介于引号之间,它绝对是一个字符串。在你的文章开头,你说,“我在文件中有下面的字符串”。也许你不想要一个字符串,但这就是我的代码返回 – Totem
如果你想成为一个单行:
''.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)
始终在'code'和文本之间添加一行以使格式化工作。 – jwarner112
向我们展示代码,您尝试去做。 – greg