2014-01-13 9 views
2

파이썬에서 다중 입력을 허용하는 법을 알고 싶습니다.
예 : 메시지가 "! postid customcomment"입니다.
나는 그 게시물 ID를 가져 와서 어딘가에 넣고 customcomment를 넣고 다른 곳에 넣을 수 있기를 원합니다. 나는 그것을 알아낼 수 없습니다

파이썬 2.7에서 문자열 분할하기

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!') 

:
다음은 내 코드입니다.
진보 된 감사합니다.

답변

2

나는 당신이 요구하는 것을 확실히 말할 수는 없지만 이것이 당신이 원하는 것을 할 것으로 보인다.

msg_list=msg.split(" ",2)

: msg = "!comment postid customcomment" 당신이 분리 2의 분할의 최대 수로 " "를 사용하여 문자열의 목록에 문자열을 설정하는 내장 된 문자열 방법 split을 사용할 수 있다는 가정
제로 번째 인덱스는 숫자 입력을 필요로하는 경우 당신이 그것을

postid=msg_list[1] 또는 postid=int(msg_list[1])을 무시할 수 있도록 "언급!"가 포함됩니다

message = msg_list[2]

스플릿을 제한하지 않고 기본 동작 (예 : msg_list=msg.split())을 사용하는 경우 나머지 문자열을 공백으로 구분하여 다시 입력해야합니다.

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

마지막

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

+0

음, 내가 "코멘트!"를 제거하는 데 필요한 것을 : 이렇게하려면 당신은 그냥 않는 내장 된 문자열 방법 join을 사용할 수 있습니다 ID 섹션에 게시물 ID를 넣은 다음 메시지 섹션에 메시지를 넣습니다. 의미 :! 의견 987654321 안녕하세요 "안녕하세요"라고하는 게시물 번호 987654321에 댓글을 달았습니다. 그래서 나는'postid = msg.replace ('! comment', '', 1)'를 사용합니다. 사용자가 게시물 ID를 입력하면 일반적인 주석을 어디에 게시했는지 알 수있었습니다. "! comment"뒤에 나온 것은 게시물 ID였습니다. 그것은 "! comment"를 아무것도 대체하지 않았기 때문에 postID만을 남겨 두었습니다. 따라서 "id = postid"를 수행 한 이유 혼란스러운 일이라면 죄송합니다. 나는 이것을 알아 내려고 시도하지 않았다. – Axiom

+0

하지만'msg' 문자열은 어떻게 생겼을 까? – mmdanziger

+0

'msg = self.Message.Body' - 기본적으로 메시지를 받으면. 이것은 내가 작업중인 Skype 봇입니다. 누군가가 "! comment 234567 This is a comment"라는 메시지를 받으면 내가 게시 ID와 사용자 정의 주석을 인식 할 수 있기를 원합니다. – Axiom