5

以下の python スクリプトを使用してroot、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内に存在するかどうかを確認することです。そうでない場合は、 insideというフォルダーを作成します。wwwcoolfoowww

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

ハンスからのヒントの後!Google でこれらのコマンドを検索したところ、次のリンクが見つかりました: 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 に答える