PythonでFTPサーバーの全てのファイルとディレクトリを一覧表示してみます。
なお、今回はftplibモジュールを使用します。ftplibモジュールはPythonの標準ライブラリとなっていますので、事前にインストールする必要はありません。
■Python
今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)
■FTPサーバーの全てのファイルとディレクトリを一覧表示する
では、早速FTPサーバーの全てのファイルとディレクトリを一覧表示するスクリプトを書いていきます。
■retrlines()関数を使用する
■コード
from ftplib import FTP ftp = FTP('ホスト名') ftp.login(user='ユーザー名',passwd='パスワード') ftp.cwd('FTPサーバー内のディレクトリ名') ftp.retrlines('LIST') ftp.quit()
インポートでftplibモジュールを呼び出します。ftpという変数を作成し、その中にFTP()と記述します。括弧内にはホスト名を指定します。
指定後、ftp.login()で指定したFTPサーバーにログインを行います。括弧内の第1の引数にログインの際に必要なユーザー名と、第2の引数にパスワードを記述します。
記述後、ftp.cwd()でログインしたFTPサーバー内のディレクトリの情報を取得、もしくは変更します。
取得後、ftp.retrlines()で取得したディレクトリ内のファイルとディレクトリをリスト化できます。括弧内には「LIST」と記述します。
最後にftp.quit()で接続したFTPサーバーを閉じます。
■実行
このスクリプトを「ftp_test.py」という名前で保存し、コマンドプロンプトから実行してみます。
実行してみると、FTPサーバーの全てのファイルとディレクトリを一覧表示することができました。
■dir()関数を使用する
次に、dir()関数を使用し、FTPサーバーの全てのファイルとディレクトリを一覧表示させてみます。
■コード
from ftplib import FTP ftp = FTP('ホスト名') ftp.login(user='ユーザー名',passwd='パスワード') ftp.cwd('FTPサーバー内のディレクトリ名') ftp.dir() ftp.quit()
FTPサーバーへ接続を行い、ftp.login()でログインします。ログイン後、ftp.cwd()でFTPサーバー内のディレクトリの情報を取得、もしくは変更。その後、ftp.dir()で取得したディレクトリの情報をリスト化します。
■実行
このスクリプトを「ftp_test2.py」という名前で保存し、コマンドプロンプトから実行してみます。
実行してみると、FTPサーバーの全てのファイルとディレクトリが一覧で表示されることが確認できました。
■nlst()関数を使用する
次に、nlst()関数を使用してFTPサーバーの全てのファイルとディレクトリを一覧表示させてみます。
■コード
from ftplib import FTP ftp = FTP('ftp-kazutaka01.heteml.net') ftp.login(user='kazutaka01',passwd='92GyKJ674Kbz') ftp.cwd('web') ftp_list = ftp.nlst(".") ftp.quit() print(ftp_list)
FTPサーバーへ接続を行い、ftp.login()でログインします。ログイン後、ftp.cwd()でFTPサーバー内のディレクトリの情報を取得、もしくは変更。その後、ftp.nlst()で取得したディレクトリの情報をリスト化します。
最後にリスト化したものをprint関数で出力してみます。
■実行
このスクリプトを「ftp_test3.py」という名前で保存し、コマンドプロンプトから実行してみます。
実行してみると、print関数でFTPサーバーの全てのファイルとディレクトリが一覧で出力されることを確認できました。