PythonでFTPを扱う方法!ftplibモジュールでファイル転送を自動化しよう
Pythonでは、標準ライブラリのftplibモジュールを使うことで、FTPサーバーとの通信を簡単に実装できます。このモジュールを利用すれば、ファイルのアップロードやダウンロードなど、さまざまなFTP処理を自動化するプログラムを作成可能です。FTPサーバーに接続してファイル一覧を取得し、それらをローカル環境で処理するといった流れも、わずか数行のコードで実現できます。
ftplibを使った基本的な接続例
以下は、FTPサーバーに接続してホームディレクトリ内のファイル一覧を表示するサンプルコードです。
import ftplib
# FTPサーバーに接続(ホスト名、ユーザー名、パスワードを指定)
ftp = ftplib.FTP('ftp.yourserver.com', 'yourusername', 'yourpassword')
print("File List: ")
files = ftp.dir() # ファイル一覧を取得・表示
print(files)
ftp.cwd("/tmp") # 作業ディレクトリを /tmp に変更
このコードを実行すると、指定したFTPサーバーにログインし、そのホームディレクトリにあるファイルの一覧が出力されます。また、ftp.cwd()メソッドを使えば、リモート側の作業ディレクトリを自由に切り替えることもできます。
主なftplibのメソッド
ftplibには、FTP操作に便利なメソッドが多数用意されています。よく使われるものを以下にまとめました。
- ftp.login(user, passwd):サーバーにログインする(コンストラクタで認証情報を渡さない場合に使用)
- ftp.dir():カレントディレクトリ内のファイル一覧を表示する
- ftp.nlst():ファイル名の一覧をリスト形式で取得する
- ftp.cwd(path):リモート側の作業ディレクトリを変更する
- ftp.retrbinary(cmd, callback):バイナリモードでファイルをダウンロードする
- ftp.storbinary(cmd, file):バイナリモードでファイルをアップロードする
- ftp.quit():接続を安全に切断する
注意点
FTPは通信内容が暗号化されないプロトコルのため、機密性の高いデータを扱う場合はFTPS(FTP over TLS/SSL)やSFTP(SSH File Transfer Protocol)の利用を検討しましょう。Pythonではftplib.FTP_TLSクラスを使えばFTPSに対応でき、SFTPであればサードパーティ製のparamikoライブラリが広く使われています。
-
WindowsでPythonを使う方法|インストールから実行・モジュール導入まで完全解説
初心者にも学びやすいプログラミング言語の代表格として、Pythonは世界中の何百万人ものコーダーに選ばれています。学習のハードルが低く、Windows・macOS・Linuxなど主要なOSすべてでサポートされており、Webサイト開発からデスクトップゲーム制作まで、幅広いプロジェクトに活用できるのが魅力です。 macOSやLinuxではPythonが最初からインストールされていることが多い一方、Windowsではいくつか追加の手順を踏む必要があります。この記事では、WindowsでPythonをインストールし、実際に使い始めるまでの流れをわかりやすく解説します。 WindowsへのPyt
-
PythonのTkinterでスレッドを使う方法|threadingモジュールによる非同期処理の基本
Tkinterでは、スレッド(Threading)を活用することで、複数の関数を同時に実行できます。これにより、アプリケーション内の処理を非同期で動かすことが可能になります。 Pythonでスレッドを使用するには、まずthreadingモジュールをインポートし、そのThreadクラスを継承した新しいクラスを定義します。そして、クラス内でrunメソッドをオーバーライドし、実行したい処理をその中に記述します。 つまり、スレッドを使えば複数の作業を並行して進めることができます。Tkinterアプリケーションでスレッドを実現する際は、Thread()関数を利用します。 ここでは、「一定時間スリープした