FTP_CREATE_MISSING_DIRS là một hoạt động curl (added here). Tôi sẽ nguy hiểm khi đoán rằng bạn phải làm điều đó bằng tay với ftplib, nhưng tôi muốn được chứng minh là sai, bất cứ ai?
Tôi muốn làm điều gì đó như sau: (chưa được kiểm tra, và cần phải bắt 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
Hoặc bạn có thể làm directory_exists
như thế này: (một chút khó khăn hơn để đọc?)
# 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)
Nguồn
2012-05-22 05:03:33
Cảm ơn bạn, mặc dù nó không chính xác những gì tôi đang tìm kiếm, nhưng đó là một câu trả lời hay. Thanx;) – AliBZ
Không, bạn không phải thực hiện thủ công. Bạn có thể chỉ cần gọi phương thức 'makedirs' trong gói' ftputil' thay thế. – xApple