Python
 Computer >> コンピューター >  >> プログラミング >> Python

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ライブラリが広く使われています。

  1. WindowsでPythonを使う方法|インストールから実行・モジュール導入まで完全解説

    初心者にも学びやすいプログラミング言語の代表格として、Pythonは世界中の何百万人ものコーダーに選ばれています。学習のハードルが低く、Windows・macOS・Linuxなど主要なOSすべてでサポートされており、Webサイト開発からデスクトップゲーム制作まで、幅広いプロジェクトに活用できるのが魅力です。 macOSやLinuxではPythonが最初からインストールされていることが多い一方、Windowsではいくつか追加の手順を踏む必要があります。この記事では、WindowsでPythonをインストールし、実際に使い始めるまでの流れをわかりやすく解説します。 WindowsへのPyt

  2. PythonのTkinterでスレッドを使う方法|threadingモジュールによる非同期処理の基本

    Tkinterでは、スレッド(Threading)を活用することで、複数の関数を同時に実行できます。これにより、アプリケーション内の処理を非同期で動かすことが可能になります。 Pythonでスレッドを使用するには、まずthreadingモジュールをインポートし、そのThreadクラスを継承した新しいクラスを定義します。そして、クラス内でrunメソッドをオーバーライドし、実行したい処理をその中に記述します。 つまり、スレッドを使えば複数の作業を並行して進めることができます。Tkinterアプリケーションでスレッドを実現する際は、Thread()関数を利用します。 ここでは、「一定時間スリープした