문제

나는 사용을 사용하여 이미지를 다운로드하기 위해 몇 가지 파이썬 코드를 작성했습니다.

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를 교수형으로 떠난 것에 대해 정말 기분이 좋지 않습니다!

다른 팁

다운로드 된 파일을 올바르게 닫지 않은 것으로 나타났습니다. 이런 일이 결코 일어나지 않은 척하자.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top