5

root我使用下面的 python 脚本来检查我的 ftp 服务器上是否存在文件。

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!如果不创建一个名为fooinside的文件夹www

4

3 回答 3

6
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()

于 2014-04-28T09:15:20.187 回答
4

在汉斯的暗示下!我在谷歌上搜索了这些命令,发现了这个链接: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
于 2014-01-15T22:46:59.730 回答
1

ftplib 是 FTP 协议的一个相当薄的包装器。您可以查看http://en.wikipedia.org/wiki/List_of_FTP_commands以了解 FTP 命令的作用。

提示:查看 CWD、LIST、MKD。

对于 LIST,您将需要 ftp.retrlines 并对其进行解析以查看它是否是目录。

于 2014-01-14T22:54:13.670 回答