如果不使用python创建文件夹,如何检查目录中是否存在文件夹

时间:2014-01-14 22:48:03

标签: python ftp lookup subdirectory create-directory

我使用下面的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的文件夹。

3 个答案:

答案 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