如何让Python检查ftp目录是否存在?

14 python ftp

我正在使用此脚本连接到示例ftp服务器并列出可用目录:

from ftplib import FTP
ftp = FTP('ftp.cwi.nl')   # connect to host, default port (some example server, i'll use other one)
ftp.login()               # user anonymous, passwd anonymous@
ftp.retrlines('LIST')     # list directory contents
ftp.quit()
Run Code Online (Sandbox Code Playgroud)

如何使用ftp.retrlines('LIST')输出来检查目录(例如public_html)是否存在,是否存在cd,然后执行其他一些代码并退出; 如果不立即执行代码并退出?

Tem*_*ere 17

Nslt将为ftp服务器中的所有文件列出一个数组.只需检查您的文件夹名称是否存在.

from ftplib import FTP 
ftp = FTP('yourserver')
ftp.login('username', 'password')

folderName = 'yourFolderName'
if folderName in ftp.nlst():
    #do needed task 
Run Code Online (Sandbox Code Playgroud)


gho*_*g74 10

你可以使用一个清单.例

import ftplib
server="localhost"
user="user"
password="test@email.com"
try:
    ftp = ftplib.FTP(server)    
    ftp.login(user,password)
except Exception,e:
    print e
else:    
    filelist = [] #to store all files
    ftp.retrlines('LIST',filelist.append)    # append to list  
    f=0
    for f in filelist:
        if "public_html" in f:
            #do something
            f=1
    if f==0:
        print "No public_html"
        #do your processing here
Run Code Online (Sandbox Code Playgroud)

  • 而不是发送命令"LIST",它返回一行充满关于每个文件的信息,然后测试'如果文件名在f',你可以发送命令"NLST",它只返回每个文件的文件名.请参阅http://docs.python.org/library/ftplib.html#ftplib.FTP.retrlines (7认同)