FTP_CREATE_MISSING_DIRS ist ein Rollvorgang (added here). Ich würde eine Vermutung riskieren, dass Sie es manuell mit ftplib tun müssen, aber ich würde gerne falsch bewiesen werden, jemand?
Ich würde etwas tun, wie folgt aus: (ungetestet, und müssen ftplib.all_errors
fangen)
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
Oder Sie könnten directory_exists
tun, wie folgt: (etwas schwieriger zu lesen?)
# 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)
Danke, obwohl es nicht genau das war, wonach ich suchte, aber es war eine gute Antwort. Danke;) – AliBZ
Nein, Sie müssen es nicht manuell tun. Sie könnten stattdessen die 'makedirs'-Methode im' ftputil'-Paket aufrufen. – xApple