- Today
- Total
Recent Posts
Recent Comments
Archives
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 코딩시험
- 파이썬 알고리즘
- 대학시험
- 코딩문제
- 알고리즘 강좌
- 파이썬 강의
- c언어
- 쉬운 파이썬
- 파이썬 강좌
- gdrive
- 자료구조
- 파이썬활용
- 중간시험
- 자료구조 강의
- 크롤링
- 프로그래밍
- python 중간고사
- 면접 파이썬
- python data structure
- selenium
- 알고리즘 강의
- Crawling
- 채용문제
- 셀레니움
- 파이썬 입문
- 파이썬 자료구조
- 알고리즘
- 파이썬3
- 기말시험
- 파이썬
Notice
반원 블로그
파이썬 텔레그램 쓰기 - 2 예약 명령어 구조 만들기(파일 관리) 본문
/명령어 구조 만들기
- msg['text']에 처음 /이면 예약명령어로 인식
- 그 다음 if문으로 분기를 만들면 된다.
기존 echo 기능 재정리
def handle(msg):
content_type, chat_type, chat_id, msg_date, msg_id = telepot.glance(msg, long=True)
print(msg)
print('-'*36)
if content_type == 'text':
#예약 명령어인지 확인
if msg['text'][0] == "/":
#에코 기능
if msg['text'].split()[0] == '/echo':
bot.sendMessage(chat_id, '(Echo)'+msg['text'][len('/echo '):])
파일목록 확인 기능 추가
TOKEN = '토큰값'
import telepot, os
from telepot.loop import MessageLoop
#해당 폴더 파일리스트
def get_dir_list(path):
if os.path.exists(path):
return os.listdir(path)
else :
return None
def handle(msg):
content_type, chat_type, chat_id, msg_date, msg_id = telepot.glance(msg, long=True)
print(msg)
print('-'*36)
if content_type == 'text':
#예약 명령어인지 확인
if msg['text'][0] == "/":
#에코 기능
if msg['text'].split()[0] == '/echo':
bot.sendMessage(chat_id, '(Echo)'+msg['text'][len('/echo '):])
#파일 관련 기능
elif msg['text'].split()[0] == '/목록':
path = msg['text'][len('/목록 '):]
print(repr(path))
fileList = get_dir_list(path)
if fileList :
res = '[{}경로 파일 목록]'.format(path)
res += '\n'.join(fileList)
else :
res = '경로가 잘못되었습니다.'
bot.sendMessage(chat_id,res)
bot = telepot.Bot(TOKEN)
# MessageLoop(bot, handle).run_as_thread()
bot.message_loop(handle,run_forever=True)
print ('Listening ...')
전송 가능 함수들
- Bot 가능 함수 : 참고
- bot.sendMessage의 경우는 텍스트 보낼 경우 사용하는 함수
- text 이외의 파일 형태인 경우는 두번째 인자로 open('파일명','rb)를 넣어준다.
- sendPhoto
- sendAudio
- sendDocument
- sendVoice
문서, 사진, 영상 다운로드 추가
def handle(msg):
content_type, chat_type, chat_id, msg_date, msg_id = telepot.glance(msg, long=True)
print(msg)
print('-'*36)
if content_type == 'text':
#예약 명령어인지 확인
if msg['text'][0] == "/":
#에코 기능
if msg['text'].split()[0] == '/echo':
bot.sendMessage(chat_id, '(Echo)'+msg['text'][len('/echo '):])
#파일 관련 기능
elif msg['text'].split()[0] == '/목록':
path = msg['text'][len('/목록 '):]
print(repr(path))
fileList = get_dir_list(path)
if fileList :
res = '[{}경로 파일 목록]'.format(path)
res += '\n'.join(fileList)
else :
res = '경로가 잘못되었습니다.'
bot.sendMessage(chat_id,res)
elif msg['text'].split()[0] == '/문서':
try:
path = msg['text'][len('/문서 '):]
if os.path.exists(path):
bot.sendDocument(chat_id,open(path,'rb'))
except:
bot.sendMessage(chat_id,'해당 파일을 찾을 수 없거나, 경로가 잘못되었습니다.')
elif msg['text'].split()[0] == '/사진':
try:
path = msg['text'][len('/사진 '):]
if os.path.exists(path):
bot.sendPhoto(chat_id,open(path,'rb'))
except:
bot.sendMessage(chat_id,'해당 파일을 찾을 수 없거나, 경로가 잘못되었습니다.')
elif msg['text'].split()[0] == '/영상':
try:
path = msg['text'][len('/영상 '):]
if os.path.exists(path):
bot.sendVideo(chat_id,open(path,'rb'))
except:
bot.sendMessage(chat_id,'해당 파일을 찾을 수 없거나, 경로가 잘못되었습니다.')
문서-사진-영상 코드 재정리
def handle(msg):
content_type, chat_type, chat_id, msg_date, msg_id = telepot.glance(msg, long=True)
print(msg)
print('-'*36)
if content_type == 'text':
#예약 명령어인지 확인
if msg['text'][0] == "/":
#에코 기능
if msg['text'].split()[0] == '/echo':
bot.sendMessage(chat_id, '(Echo)'+msg['text'][len('/echo '):])
#파일 관련 기능
elif msg['text'].split()[0] == '/목록':
path = msg['text'][len('/목록 '):]
print(repr(path))
fileList = get_dir_list(path)
if fileList :
res = '[{}경로 파일 목록]'.format(path)
res += '\n'.join(fileList)
else :
res = '경로가 잘못되었습니다.'
bot.sendMessage(chat_id,res)
elif msg['text'].split()[0] in ['/문서','/사진','/영상']:
try:
path = msg['text'][len(msg['text'].split()[0])+1:]
if os.path.exists(path):
if msg['text'].split()[0] == '/문서':
bot.sendDocument(chat_id,open(path,'rb'))
elif msg['text'].split()[0] == '/사진':
bot.sendPhoto(chat_id,open(path,'rb'))
elif msg['text'].split()[0] == '/영상':
bot.sendVideo(chat_id,open(path,'rb'))
else :
bot.sendMessage(chat_id,'찾을 수 없습니다.')
except:
bot.sendMessage(chat_id,'전송 과정에서 오류가 발생하였습니다.')
'2018~ > Python Skill Up' 카테고리의 다른 글
파이썬 텔레그램 쓰기 - 1. Bot 계정 생성 및 echo 예제 (0) | 2019.09.22 |
---|---|
9. Naver Developer api(3) - Papago NMT API, 인공신경망 번역 (0) | 2019.09.06 |
9. Naver Developer api(2) - Clova Face Recognition, 얼굴 인식 API (0) | 2019.09.06 |
9. Naver Developer api (1) - 개발자 계정 등록 (0) | 2019.09.06 |
8. pillow : 이미지 패키지(2) - ImageGrab 모듈과 Image 클래스 (0) | 2019.09.06 |
8. pillow : 이미지 패키지(1) - info, crop, thumbnail, resize (0) | 2019.09.06 |
7. pyisntaller - 파이썬 파일을 실행파일로 변환(py to exe) (0) | 2019.09.06 |
6. requests 모듈 - REST API 사용법, curl을 python requests로 변환방법 (0) | 2019.09.06 |
Comments