PythonはFTPを実装して、ファイルをループでアップロードします

この記事の例では、参照用にFTPアップロードファイルを実現するためのpythonの特定のコードを共有しています。具体的な内容は次のとおりです。

テスト中に、FTPデータストリームが使用される場合や、FTPを使用してファイルを繰り返しアップロードする必要がある場合があるため、FTPでファイルをループでアップロードするためのPythonコードを作成しました。

コードは次のように表示されます。

# coding=utf-8import sys
import os
from ftplib import FTP
from time import sleep

_ XFER_FILE ='FILE'
_ XFER_DIR ='DIR'classTransmitter(object): #注意:ローカルファイルまたはdirをftpサーバーに再帰的にアップロードします

 def __init__(self):
 self.ftp = None

 def __del__(self):
 pass

 def setFtpParams(self, ip, uname, pwd, port=21, timeout=60):
 self.ip = ip
 self.uname = uname
 self.pwd = pwd
 self.port = port
 self.timeout = timeout

 def initEnv(self):if self.ftp is None:
  self.ftp =FTP()print('###FTPサーバーに接続します: %s ...'% self.ip)
  self.ftp.connect(self.ip, self.port, self.timeout)
  self.ftp.login(self.uname, self.pwd)

 def clearEnv(self):if self.ftp:
  self.ftp.close()print('###FTPサーバーを切断します: %s!'% self.ip)
  self.ftp = None

 def uploadDir(self, localdir='./', remotedir='./'):if not os.path.isdir(localdir):return
 self.ftp.cwd(remotedir)for file in os.listdir(localdir):
  src = os.path.join(localdir, file)if os.path.isfile(src):
  self.uploadFile(src, file)
  elif os.path.isdir(src):try:
   self.ftp.mkd(file)
  except:
   sys.stderr.write('ディレクトリが存在します%s'% file)
  self.uploadDir(src, file)
 self.ftp.cwd('..')

 def uploadFile(self, localpath, remotepath='./'):if not os.path.isfile(localpath):returnprint('+++アップロード%s to %s:%s'%(localpath, self.ip, remotepath))
 self.ftp.storbinary('STOR '+ remotepath,open(localpath,'rb'))sleep(0.5)try:
  self.ftp.delete(remotepath)
 except:
  pass
 # del file when uploaded this file
 # os.remove(localpath)
 # sleep(1)

 def __filetype(self, src):if os.path.isfile(src):
  index = src.rfind('\')if index ==-1:
  index = src.rfind('/')return _XFER_FILE, src[index +1:]
 elif os.path.isdir(src):return _XFER_DIR,''

 def upload(self, src):
 filetype, filename = self.__filetype(src)
 self.initEnv()if filetype == _XFER_DIR:
  self.srcDir = src
  self.uploadDir(self.srcDir)
 elif filetype == _XFER_FILE:
  self.uploadFile(src, filename)
 self.clearEnv()if __name__ =='__main__':
 srcDir = r'C:\Users\Administrator\Downloads\FTP\smp'
 transmitter =Transmitter()
 transmitter.setFtpParams('10.44.0.2','admin','123123')while True:
 transmitter.upload(srcDir)sleep(4)

以上が本稿の内容ですので、皆様のご勉強に役立てていただければ幸いです。

Recommended Posts

PythonはFTPを実装して、ファイルをループでアップロードします
pythonでファイルとディレクトリを削除する方法
告白プログラムをpythonで書く方法
Ubuntu14.04でPython仮想環境を作成する方法
pythonでファイルを開く方法は何ですか
Pythonは推測ゲームを実装しています
PythonがFTP機能を実装する方法
Pythonファイルを暗号化する3つの方法
pythonで円の領域を見つける方法
pythonコードでラップする方法
PythonはユニバーサルWebフレームワークを実装しています
Pythonは、メールを送信するために126のメールボックスを実装しています
Pythonで括弧を省略する方法
pythonでクラスを書く方法
pythonで数値をフィルタリングする方法
PythonでExcelを読む方法
Pythonはftpファイル転送機能を実装しています
pythonでreturnを書く方法
pythonで変数をクリアする方法
PythonでSQLiteを使用する方法
Pythonファイル処理の実用ガイド
Pythonはメールを送信するためのQQメールボックスを実装しています
Pythonで地球を作る方法
およびおよびまたはPythonでの使用方法
Pythonでサードパーティモジュールを導入する方法
pythonでnull値を表す方法
Python正規表現の簡単な紹介
pythonでwinプログラムを書く方法
Qixiの告白アーティファクトをPythonで作成する
Pythonでサードパーティモジュールをインストールする方法
pythonでエラーをカスタムキャッチする方法
pythonでtryステートメントを書く方法
Pythonでプライベート属性を定義する方法
Pythonでグローバル変数を理解する方法
インストールされているモジュールをpythonで表示する方法
さまざまなシステムでのPythonopenメソッド
Pythonのシーケンステーブルとは
pythonの数値は可変型ですか
音楽ファイルを開くためのPythonのサンプルメソッド
pythonにヘルパー関数はありますか
pythonで背景音楽を追加する方法
pythonで相対パスを表す方法
pythonでround関数を使用する方法
RHEL / CentOS8でネットワークブリッジを作成する3つの方法
Pythonのインターフェースに基づいてプログラミングする方法
ubuntuサーバー環境にpythonをインストールする方法
Pythonでの歩留まりを理解するための記事
PythonはDoudizhuでカードのシャッフルを実装します
真新しいUbuntuにPython3環境をインストールする
pythonでアシスタントを実行するコードを使用する方法
python-pythonを使用して小さなショッピングプログラムを作成します
Pythonはシンプルな名刺管理システムを実装しています
pythonでゲームを書く方法を教えてください
ダウンロードしたモジュールをpythonでインストールする方法
Pythonで正規表現を取得するための1つの記事
Pythonで型を判断するための最良の方法
Pythonでファイルを読み書きする方法
Pythonはどのようにデータをjsonファイルに保存しますか
pythonで連続乗算計算を実行する方法