반응형
질문
import ftplib
import urllib2
import os
import logging
logger = logging.getLogger('ftpuploader')
hdlr = logging.FileHandler('ftplog.log')
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
logger.setLevel(logging.INFO)
FTPADDR = "일부 ftp 주소"
def upload_to_ftp(con, filepath):
try:
f = open(filepath,'rb') # 보낼 파일
con.storbinary('STOR '+ filepath, f) # 파일 보내기
f.close() # 파일과 FTP 닫기
logger.info(FTPADDR+ '에 파일이 성공적으로 업로드 되었습니다.')
except, e:
logger.error('FTP에 업로드하지 못했습니다: '+ str(e))
이 방법은 작동하지 않는 것 같습니다. 구문 오류가 발생합니다. 모든 종류의 예외를 파일에 기록하는 올바른 방법은 무엇인가요?
답변
예외를 잡을 타입을 정의해야합니다. 일반적인 예외 (어쨌든 기록될 것입니다)을 위해 except Exception, e:
대신 except, e:
를 작성하십시오.
다른 가능성은 전체 try / except 코드를 이러한 방식으로 작성하는 것입니다.
try:
with open(filepath,'rb') as f:
con.storbinary('STOR '+ filepath, f)
logger.info('File successfully uploaded to '+ FTPADDR)
except Exception, e: # python 2.x에서 작동
logger.error('Failed to upload to ftp: '+ str(e))
Python 3.x 및 최신 버전의 Python 2.x에서는 except Exception, e
대신 except Exception as e
를 사용하십시오.
try:
with open(filepath,'rb') as f:
con.storbinary('STOR '+ filepath, f)
logger.info('File successfully uploaded to '+ FTPADDR)
except Exception as e: # python 3.x에서 작동
logger.error('Failed to upload to ftp: '+ str(e))
반응형
댓글