Search code examples
pythonstringparsingsplit

How can I split and parse a string in Python?


I am trying to split this string in python: 2.7.0_bf4fda703454

I want to split that string on the underscore _ so that I can use the value on the left side.


Solution

  • "2.7.0_bf4fda703454".split("_") gives a list of strings:

    In [1]: "2.7.0_bf4fda703454".split("_")
    Out[1]: ['2.7.0', 'bf4fda703454']
    

    This splits the string at every underscore. If you want it to stop after the first split, use "2.7.0_bf4fda703454".split("_", 1).

    If you know for a fact that the string contains an underscore, you can even unpack the LHS and RHS into separate variables:

    In [8]: lhs, rhs = "2.7.0_bf4fda703454".split("_", 1)
    
    In [9]: lhs
    Out[9]: '2.7.0'
    
    In [10]: rhs
    Out[10]: 'bf4fda703454'
    

    An alternative is to use partition(). The usage is similar to the last example, except that it returns three components instead of two. The principal advantage is that this method doesn't fail if the string doesn't contain the separator.