FTP_CREATE_MISSING_DIRS - операция завитка (added here). Я бы рискнул предположить, что вы должны сделать это вручную с ftplib, но я бы хотел, чтобы кто-то доказал свою несостоятельность?
Я хотел бы сделать что-то вроде следующего: (непроверенный, и нужно поймать ftplib.all_errors
)
ftp = ... # Create connection
# Change directories - create if it doesn't exist
def chdir(dir):
if directory_exists(dir) is False: # (or negate, whatever you prefer for readability)
ftp.mkd(dir)
ftp.cwd(dir)
# Check if directory exists (in current location)
def directory_exists(dir):
filelist = []
ftp.retrlines('LIST',filelist.append)
for f in filelist:
if f.split()[-1] == dir and f.upper().startswith('D'):
return True
return False
Или вы могли бы сделать directory_exists
так: (немного труднее читать?)
# Check if directory exists (in current location)
def directory_exists(dir):
filelist = []
ftp.retrlines('LIST',filelist.append)
return any(f.split()[-1] == dir and f.upper().startswith('D') for f in filelist)
Спасибо, хотя это было не совсем то, что я искал, но это был хороший ответ. Thanx;) – AliBZ
Нет, вам не нужно делать это вручную. Вместо этого вы можете просто вызвать метод 'makedirs' в пакете' ftputil'. – xApple