NOOP 명령을 보냅니다. 이것은 아무것도하지 않지만 연결이 계속되고 있는지 확인하고 주기적으로 연결하면 연결을 유지할 수 있습니다. 예를 들어
:
conn.voidcmd("NOOP")
다음 FTP 객체가 예외가 발생합니다 연결에 문제가있는 경우. IO 오류
socket.error과 : 오류가있는 경우는 예외가 슬로우됩니다 documentation에서 볼 수 있습니다.이는 소켓 연결에 의해 제기와 관심있는 가능성이 가장 높은 것들된다
예외 ftplib.error_reply : 예기치 않은 응답이 서버에서 수신 된 경우 예외가 발생합니다.
예외 ftplib.error_temp : 임시 오류 (400-499 범위의 응답 코드)를 나타내는 오류 코드가 수신되면 예외가 발생합니다.
예외 ftplib.error_perm (500-599 범위에서 응답 코드) 영구 에러를 나타내는 에러 코드가 수신 될 때 발생 예외.
예외 ftplib.error_proto : 파일 전송 프로토콜의 응답 사양에 맞지 않는 서버로부터 응답을 받으면 예외가 발생합니다 (즉, 1-5 범위의 숫자로 시작).
따라서 try-catch block을 사용하여 오류를 감지하고 그에 따라 처리 할 수 있습니다. 이 코드 샘플, IOError가 잡을 그것에 대해 당신에게 다음 작업을 다시 시도합니다 예를 들어
:
retry = True
while (retry):
try:
conn = FTP('blah')
conn.connect()
for item in list_of_items:
myfile = open('filename', 'w')
conn.retrbinary('stuff', myfile)
### do some parsing ###
retry = False
except IOError as e:
print "I/O error({0}): {1}".format(e.errno, e.strerror)
print "Retrying..."
retry = True
'할 수있는 하나 개의 확실한 방법이 있어야한다는 ftplib'는 파이썬 원리에 맞지 않는 것 같다 무언가 - 또는 적어도 당신은'voidcmd ('NOOP')' – Axeman