我使用此脚本连接到示例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()如何使用ftp.retrlines('LIST')输出检查目录(例如public_html)是否存在,如果存在,则执行其他代码并退出;如果不存在,立即执行代码并退出?
发布于 2013-01-15 12:28:31
Nslt将列出ftp服务器中所有文件的数组。只需检查您的文件夹名称是否在那里。
from ftplib import FTP
ftp = FTP('yourserver')
ftp.login('username', 'password')
folderName = 'yourFolderName'
if folderName in ftp.nlst():
#do needed task 发布于 2009-07-08 13:56:39
您可以使用列表。示例
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发布于 2013-11-13 17:50:51
您可以通过控制连接发送"MLST路径“。这将返回一行包含路径类型的行(请注意此处的'type=dir‘):
250-Listing "/home/user":
modify=20131113091701;perm=el;size=4096;type=dir;unique=813gc0004; /
250 End MLST.翻译成python应该是这样的:
import ftplib
ftp = ftplib.FTP()
ftp.connect('ftp.somedomain.com', 21)
ftp.login()
resp = ftp.sendcmd('MLST pathname')
if 'type=dir;' in resp:
# it should be a directory
pass当然,上面的代码不是100%可靠的,需要一个“真正的”解析器。您可以在ftplib.py中查看MLSD命令的实现,这非常相似(MLSD与MLST的不同之处在于,响应是通过数据连接发送的,但传输的行的格式是相同的):http://hg.python.org/cpython/file/8af2dc11464f/Lib/ftplib.py#l577
https://stackoverflow.com/questions/1098218
复制相似问题