2014-01-14 35 views
4

我使用下面的python腳本來檢查我的ftp服務器的root上是否存在文件。如何檢查目錄中是否存在文件夾,如果不是使用python創建它

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目錄中?

例如,我想查看www目錄內是否存在名爲foo的文件夾名稱。

我的問題goal,是看文件夾foo是否存在於www目錄裏面,如果是的話打印cool!如果不在www內創建名爲foo的文件夾。

回答

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 
1

ftplib是FTP協議的一個相當薄的包裝。您可以查看http://en.wikipedia.org/wiki/List_of_FTP_commands以查看FTP命令的功能。提示:看看CWD,LIST,MKD。

對於LIST,您將需要ftp.retrlines並解析它以查看它是否爲目錄。

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

'ftp.nlst()'會給你在CWD中的文件名和目錄。 –

相關問題