我使用下面的python脚本来检查我的ftp服务器的root
上是否存在文件。
from ftplib import FTP
ftp = FTP('ftp.hostname.com')
ftp.login('login', 'password')
folderName = 'foldername'
if folderName in ftp.nlst() :
print 'YES'
else : print 'NO'
如何修改上述脚本以查看特定文件夹而不是root
目录?
例如,我想查看foo
目录中是否存在名为www
的文件夹名称。
我的问题的goal
是查看foo
目录中是否存在www
文件夹,如果是,请打印cool
!如果没有在foo
内创建名为www
的文件夹。
答案 0 :(得分:4)
from ftplib import FTP
ftp = FTP('ftp.hostname.com')
ftp.login('login', 'password')
where = 'www'
folderName = 'foldername'
if folderName in ftp.nlst(where) :
print 'YES'
else :
print 'NO'
只需将您想要查看的目录作为ftp.nlst()
答案 1 :(得分:1)
ftplib是一个围绕FTP协议的相当薄的包装器。您可以查看http://en.wikipedia.org/wiki/List_of_FTP_commands以查看FTP命令的作用。
提示:看看CWD,LIST,MKD。
对于LIST,您将需要ftp.retrlines并解析它以查看它是否是目录。
答案 2 :(得分:0)
汉斯的暗示之后!我在谷歌搜索了那些commandes,我找到了这个链接:http://docs.python.org/2/library/ftplib.html
from ftplib import FTP
ftp = FTP('ftp.hostname.com')
ftp.login('login', 'passwrd')
ftp.cwd('www') # change into 'www' directory
if 'foo' in ftp.nlst() : #check if 'foo' exist inside 'www'
print 'YES'
ftp.cwd('foo') # change into "foo" directory
ftp.retrlines('LIST') #list directory contents
else :
print 'NO'
ftp.mkd('foo') #Create a new directory called foo on the server.
ftp.cwd('foo') # change into 'foo' directory
ftp.retrlines('LIST') #list subdirectory contents
ftp.close() #close connection