Pergunta

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.

Foi útil?

Solução

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)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top