2015-01-28 3 views
0

동일한 FTP 세션에서 Python의 ftplib을 사용하여 동일한 FTP 서버의 두 폴더를 탐색하고 싶습니다. 다음과 같이Python의 FTP 서버에서 다른 폴더 탐색

이 (gbname 및 gffname이 할당) 내가 쓴 기본 스크립트가됩니다 :

ensembl = FTP('ftp.ensemblgenomes.org') 
ensembl.login() 

ensembl.cwd("pub/fungi/current/genbank/") 
ensembl.retrbinary('RETR ' + gbname, open(gbname, 'wb').write) 

ensembl.cwd("pub/fungi/current/gff/") 
ensembl.retrbinary('RETR ' + gffname, open(gffname, 'wb').write) 

ensembl.quit() 

이 스크립트의 역 추적을 두 번째 CWD에 다음과 같은 오류와 함께 "ftplib.error_perm : (550)은 디렉토리를 변경하지 못했습니다." . 거기 추적 정보와 나는 두 개의 서로 다른 FTP 세션을 시작하여 문제를 해결할 수있는 이유를 다음과 같이

내가 이해 그러나

ensemblgb = FTP('ftp.ensemblgenomes.org') 
ensemblgb.login() 
ensemblgb.cwd("pub/fungi/current/genbank/") 
ensemblgb.retrbinary('RETR ' + gbname, open(gbname, 'wb').write) 
ensemblgb.quit() 

ensemblgff = FTP('ftp.ensemblgenomes.org') 
ensemblgff.login() 
ensemblgff.cwd("pub/fungi/current/gff/") 
ensemblgff.retrbinary('RETR ' + gffname, open(gffname, 'wb').write) 
ensemblegff.quit() 

, 궁금 해서요 내가 디렉토리를 변경하면, 여부에 "술집/곰팡이/현재/genbank/"로 변경하면 동일한 FTP 세션에서 나중에"pub/fungi/current/gff/"로 변경할 수 있습니다 (중간에 루트 폴더를 통과 할 가능성이 있습니까?). .

건배,

니콜라

+0

당신이 봤어? 동시에 2 개의 다른 디렉토리를 표시하기 위해 2 개의 FTP 연결이 필요한 이유는 FTP 작동 방식입니다. 그러나 두 연결 중 하나를 사용하여 디렉토리 트리 (액세스 할 수있는 부분)를 걷는 것을 방해하는 요소는 없어야합니다. – Chewie

답변

0

경로에 백 슬래시를 붙이는 시도 - 그것은 루트 디렉토리를 의미합니다 :

ensemblgff.cwd("/pub/fungi/current/gff/") 
+0

여분의 "/"가 트릭을 만들었습니다. 고마워. –