원격 FTP 사이트의 디렉토리 목록을 가져 오는 데 문제가 있습니다. This 응답이 작동하지 않습니다 (결과가 나타나지 않고 멈춘 것처럼 보입니다).파이썬에서 FTP 디렉토리를 반복적으로 나열합니다.
여기에 내가 생각할 수있는 가장 간단한 구현 - 그것은 단지 찾은 모든 디렉토리의 전체 경로를 출력한다 : 유일한, 그러나 그것을
1/
1-1/
1-2/
1-2/
1-3/
1-4
:
import ftplib
def ftp_walk(ftp):
print 'Path:', ftp.pwd()
dirs = ftp.nlst()
for item in (path for path in dirs if path not in ('.', '..')):
try:
ftp.cwd(item)
print 'Changed to', ftp.pwd()
ftp_walk(ftp)
ftp.cwd('..')
except Exception, e:
print item, e
ftp = ftplib.FTP('ftp.site.com')
ftp.login('user', 'pass')
ftp.cwd('1')
ftp_walk(ftp)
내 디렉토리 구조입니다 다음을 출력합니다. 이 작업 디렉토리가 새로운 하위 디렉토리에 한 번 변경 제안하지만, ftp_walk()가 새로운 CWD로 호출 될 때, 그것은 더 이상 이동하지 않습니다
> Path: 1/
> Changed to 1-1/
어떤 기능이 정지합니까? (코드에서 print 문을 추가하여 어디에서 발생하는지 알 수 있습니다.) – thesamet
또한 코드가 항목을 디렉토리로 간주하기 전에 코드가 확인하지 않습니다. – thesamet
감사합니다. 제 질문을 수정했습니다. – cyrus