FTP_CREATE_MISSING_DIRS è un'operazione di arricciatura (added here). Mi azzardo a indovinare che devi farlo manualmente con ftplib, ma mi piacerebbe essere smentito, chiunque?
farei qualcosa di simile a quanto segue: (non testato, e la necessità di prendere 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
Oppure si potrebbe fare directory_exists
in questo modo: (un po 'più difficile da leggere?)
# 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)
fonte
2012-05-22 05:03:33
Grazie, anche se non era esattamente quello che stavo cercando, ma è stata una buona risposta. Grazie;) – AliBZ
No, non è necessario farlo manualmente. Potresti semplicemente chiamare il metodo 'makedirs' nel pacchetto' ftputil'. – xApple