1

我在文本文件中有很多行。例如一行:

838: DEBUG, GD, Parameter(Player_Appearance_Model) = GaussianDistribution(0.28, 0.09)

有人可以告诉我如何在等号(“=”)之后打印所有字符串。例如,在上述情况下,输出应该是“GaussianDistribution(0.28, 0.09)”。

我试图拆分行并打印最后一个索引,但是,它给了我“0.09)”的答案,这当然是不正确的。

4

3 回答 3

8

您不需要正则表达式,只需split()

>>> s = "838: DEBUG, GD, Parameter(Player_Appearance_Model) = GaussianDistribution(0.28, 0.09)"
>>> s.split(" = ")[1]
'GaussianDistribution(0.28, 0.09)'

或者:

>>> s.split("=")[1].strip()
'GaussianDistribution(0.28, 0.09)'
于 2013-08-28T07:22:26.830 回答
5

您可以使用str.partition()

>>> s = "838: DEBUG, GD, Parameter(Player_Appearance_Model) = GaussianDistribution(0.28, 0.09)"
>>> print s.partition('= ')[2]
GaussianDistribution(0.28, 0.09)

如果您需要的数据中有另一个等号,这很有用。

于 2013-08-28T07:24:37.370 回答
0

你也可以使用这个:

def GetPart(s,part=1):
    out = s.split('=')[part].strip()      #only '=', spaces will be removed
    return out

>>> s = 'abcd=efgh'
>>> GetPart(s)
>>> 'efgh'
>>> s = 'abcd=  efgh'                     #note extra spaces
>>> GetPart(s)
>>> 'efgh'
>>> s = 'abcd   =  efgh  '                #even more space before/after
>>> GetPart(s)
>>> 'efgh'

而且当然:

>>> s = 'abcd=efgh'                       
>>> GetPart(s,0)                          #first part
>>> 'abcd'
于 2013-08-28T08:26:35.723 回答