Python의 Storbinary와 부분 업로드
문제
나는 사용을 사용하여 이미지를 다운로드하기 위해 몇 가지 파이썬 코드를 작성했습니다.
urllib.urlopen().read()
그런 다음 사용하여 FTP 사이트에 업로드하십시오
ftplib.FTP().storbinary()
하지만 문제가 있습니다. 때로는 이미지 파일이 부분적으로 만 업로드되므로 하단 20% 정도의 이미지가 끊어집니다. 로컬로 다운로드 한 버전을 확인했으며 전체 이미지를 성공적으로 다운로드하여 Storbinary의 문제라고 믿게됩니다. 나는 모든 파일을 올바르게 열고 닫고 있다고 생각합니다. 내가 왜 내가 Storbinary와 부분 업로드를 받고 있는지에 대한 단서가 있습니까?
업데이트:Python Shell의 명령을 실행하면 업로드가 성공적으로 완료되면 스크립트로 실행될 때 왜 다른지 모르겠습니다.
해결책 2
이 코드를 본 지 오래되었지만 다운로드 된 파일을 올바르게 닫지 않았다는 것을 기억합니다. 그래도 작업 코드가 있으므로 다운로드가 아닌 업로드에 문제가있는 경우에만 스 니펫이 있습니다.
이미지를 다운로드하는 작동 코드는 다음과 같습니다.
socket = urllib.urlopen(TheURL)
FileContents = socket.read()
LocalFilename = LocalDir + FilenameOnly
LocalFile = open(LocalDir + FilenameOnly, 'wb')
LocalFile.write(FileContents)
LocalFile.close()
어디에 TheURL
다운로드하려는 파일의 URL입니다. FilenameOnly
경로의 파일 이름 부분 일뿐입니다. LocalDir
지역 목적지입니다. 내 문제는 내가 부르지 않았다는 것 같아요 LocalFile.close()
.
이미지를 업로드하는 작업 코드는 다음과 같습니다.
FTPServer = ftplib.FTP(FTPServer, FTPUsername, FTPPassword)
UploadFile = open(Filename, "rb")
FTPServer.cwd(FTPSubDirectory)
UploadFile.close()
FTPServer.quit()
문제는 내가 부르지 않았다는 것도 FTPServer.quit()
이 코드에 대해 궁금한 점이 있으면 의견에 행복하게 답장을 드리겠습니다. 나는 Googlers를 교수형으로 떠난 것에 대해 정말 기분이 좋지 않습니다!
다른 팁
다운로드 된 파일을 올바르게 닫지 않은 것으로 나타났습니다. 이런 일이 결코 일어나지 않은 척하자.