Search code examples
pythonfacebookpython-2.7replaceskype4py

Splitting a string in Python 2.7


I want to know how to allow multiple inputs in Python.
Ex: If a message is "!comment postid customcomment"
I want to be able to take that post ID, put that somewhere, and then the customcomment, and put that somewhere else.
Here's my code:

import fb
token="access_token_here"
facebook=fb.graph.api(token)

#__________ Later on in the code: __________

                elif msg.startswith('!comment '):
                    postid = msg.replace('!comment ','',1)
                    send('Commenting...')
                    facebook.publish(cat="comments", id=postid, message="customcomment")
                    send('Commented!')

I can't seem to figure it out.
Thank you in advanced.


Solution

  • I can't quite tell what you are asking but it seems that this will do what you want.
    Assuming that msg = "!comment postid customcomment" you can use the built-in string method split to turn the string into a list of strings, using " " as a separator and a maximum number of splits of 2:

    msg_list=msg.split(" ",2)

    the zeroth index will contain "!comment" so you can ignore it

    postid=msg_list[1] or postid=int(msg_list[1]) if you need a numerical input

    message = msg_list[2]

    If you don't limit split and just use the default behavior (ie msg_list=msg.split()), you would have to rejoin the rest of the strings separated by spaces. To do so you can use the built-in string method join which does just that:

    message=" ".join(msg_list[2:])

    and finally

    facebook.publish(cat="comments", id=postid, message=message)