죄송합니다. 저는 Python을 처음 접했습니다. 파이썬에서 ftplib을 사용하여 FTP에서 파일을 다운로드 할 수 있지만 파일 이름 (R.pdf)과이 다운로드 (R.pdf)의 이름을 하드 코딩하는 것과 같습니다. 다운로드 방법이 있습니다. 확장자가 .PDF 인 FTP의 모든 파일을 Python을 사용하여 로컬 시스템에 저장합니다. 나는 쉘에서 이것을 단지 * .pdf를 사용하여 할 수있다.Python 스크립트를 사용하여 FTP에서 .pdf 파일 다운로드
답변
하면 자격 증명, 하고 다음 코드에서 을 다운로드 할 PDF 파일이있는 디렉토리의 주소 '으로 public_html/솔레'과 그것이 있어야 OK I와 호스트, 사용자 및 암호를 교체 생각한다. FTP 프로토콜은 두 개의 채널, 명령에 대한 하나의 기타를 기반으로하기 때문에
from ftplib import *
from os import listdir
from os.path import getsize
ftp_dt = FTP(host,user,password)
ftp_pi = FTP(host,user,password)
print '\n- Ouverture de connection et logging : OK'
ftp_dt.cwd('public_html/soleil')
ftp_pi.cwd('public_html/soleil')
def func(content, li = [0], la = [], si = [0], memname = ['']):
if name!=memname[0]:
memname[0],li[0:1],la[:],si[0:1] = name,[0],[],[0]
li[0] = li[0] + 1
si[0] = si[0] + len(content)
la.append(str(len(content)))
if li[0]%8==0:
print ' '.join(la) +\
' total: '+str(li[0])+' chunks, '+str(si[0])+' bytes'
la[:] = []
f.write(content)
li_files = []
for name in ftp_dt.nlst():
try:
ftp_dt.size(name)
if name not in ('.','..') and name[-4:]=='.pdf':
li_files.append(name)
except:
pass
if li_files:
for name in li_files:
print '\n- Downloading '+name
with open('E:\\PDF\\DOWNS\\'+name,'wb') as f:
ftp_pi.retrbinary('RETR '+name,func)
if getsize('E:\\PDF\\DOWNS\\'+name)==ftp_dt.size(name):
print ' OK ! Download of complete '+repr(name)+' SUCCEEDED'
else:
print ' FAILURE !! : '+name+' only partially downloaded'
else:
print '\nThere is no PDF file in this FTP directory'
ftp_dt.quit()
ftp_pi.quit()
두 CONNEXIONS ftp_dt 및 ftp_pi은 "데이터 전송"과 "프로토콜 해석"에 대해 정의 ..... 맞춰봐?
는 FUNC() 기능이 fonction retrbinary()에 콜백으로 사용은 그냥
def func(content):
f.write()
이 될 수 있지만의 기본 변수의 가능성을 조금을했다 함수. 내가 잘 이해하지 못하는
것은이 코드가 작동 FUNC에서 F 참조 동안() 만 FUNC()의 정의 후 코드의 텍스트에서 정의하는 방법에 대해 설명합니다. 그러나 나는 그것을 테스트하고 작동합니다!
내가 이것을 시도 할 수있다. documentation의 간단한 표정은 이것이 불가능하다는 것을 나타낸다.
그러나 dir
또는 nlst
명령을 사용하여 원격 끝에있는 파일 목록을 가져온 다음 각 파일을 루프로 가져올 수 있습니다.
FTP에서 PDF 파일의 세부 정보를 얻으면 for 루프를 사용하여이 작업을 수행 할 수 있습니다. A = ('111.pdf', '222.pdf', '333.pdf', '444.pdf') ftp = ftplib.FTP ("###. ###. ###. ### ") ftp.login ("********** ","*********** ") ftp.cwd ("/ Dir ") A의 I : 시도 : (. "RETR"+ I, 개방 (I, 'WB') 쓰기)을 제외하고 ftp.retrbinary : 인쇄 "오류" – Rakesh
- 1. PHP를 사용하여 ftp에서 파일을 다운로드
- 2. 자바 스크립트를 사용하여 파일 다운로드
- 3. wikipedia에서 pdf 파일 다운로드
- 4. 진행중인 FTP에서 파일 다운로드 - TotalBytesToReceive는 항상 -1입니까?
- 5. HTTPService를 사용하여 Flex에서 PDF 파일 다운로드
- 6. PDF 파일 채우기 - Python
- 7. Python으로 FTP에서 다운로드 - 경로 이름
- 8. python 스크립트를 통해 파일 업로드
- 9. FTP에서 업로드하는 동안 파일 차단
- 10. 프록시를 통해 PDF 파일 다운로드
- 11. FTP에서 파일 읽기
- 12. Python - 인터넷에서 .exe 파일 다운로드
- 13. FTP에서 파일 전송
- 14. ftp에서 다른 ftp로 파일 전송
- 15. PDF 파일 다운로드, 저장,보기 및 관리
- 16. PHP 스크립트를 사용하여 Torrent에서 다운로드
- 17. 크롬에서 TCPDF에서 PDF 다운로드
- 18. wget을 사용하여 여러 pdf 파일 다운로드 실패 (403 오류)
- 19. 개방 대신 PDF 파일 다운로드 프롬프트 사용자
- 20. python ftp에서 행 검색 - 성능 문제
- 21. 포스 다운로드 PDF
- 22. AJAX를 사용하여 파일 다운로드
- 23. Perl을 사용하여 파일 다운로드
- 24. 코코아를 사용하여 파일 다운로드
- 25. httprequest를 사용하여 파일 다운로드
- 26. 파일을 사용하여 파일 다운로드
- 27. GZIP을 사용하여 파일 다운로드
- 28. Python을 사용하여 파일 다운로드
- 29. ReportLab (Python)을 사용하여 PDF 문서의 PDF 이미지
- 30. 단일 요청으로 여러 파일 다운로드 (jQuery/Python)
덕분에이 있었다 짝 내가 – Rakesh
을 찾고 있었다 당신 이 대답을 upvote하고 그것이 사용자의 문제를 해결하는 경우 허용으로 표시해야합니다 user532312. –