pythonのFTP、SFTP
その他
2020-02-25 14:11:46
訪問数: null
FTPアップロードとダウンロードファイル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
ftplibのインポート FTP インポート時間 インポートのOS インポート shutil
ポート= 21
DEF (ホスト、ポート、ユーザー名、パスワード): FTP = FTP() ftp.set_debuglevel( 2) ftp.connect(ホスト、ポート) ftp.login(ユーザー名、パスワード) を返す FTPを
DEF DownloadFile (FTP、remotePathは、localPathに): =のbufsizeを 1024 FP =オープン(localPathには、 'WB' )# ftp.retrbinary( 'RETR' + remotePathは、fp.write、 BUFSIZE) (ftp.set_debuglevel 0) fp.closeを()
DEF uploadfile (FTP、remotePathは、localPathに): BUFSIZE = 1024 FP =オープン(localPathに、 'RB' ) ftp.storbinary( 'STOR' + remotePathは、FP、BUFSIZE) ftp.set_debuglevel( 0) fp.close( )
もし __name__ == '__main__' : FTP = ftpconnect(ホスト、ポート、ユーザー名、パスワード) プリント(FTP)
|
paramiko SFTPのアップロードおよびダウンロードファイル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
ビッグボックス PythonのFTP SFTP ANクラス= "ライン">
インポート paramiko
インポート OS
=ホスト名'XXX'
名= 'XXX'
、パスワード= 'XXX'
ポート= 22である
upload_local_dir = 'XXX'
download_local_dir = 'XXX'
remote_dir = '受信トレイ/'
SFTP_DOWNLOAD_FLAG = Falseの
デフ sftp_callback (転送さ、合計):
グローバル SFTP_DOWNLOAD_FLAG場合は転送さ==合計: SFTP_DOWNLOAD_FLAG =真
デフ sftpconnect (ホスト、ポート、ユーザー名、パスワード):
試してみる: SF = paramiko.Transport((ホスト、ポート)) sf.connect(ユーザー名=ユーザー名、パスワード=パスワード) SFTP = paramiko.SFTPClient.from_transport(SF)の戻り SFTP除く例外として E: プリント( '接続例外:'、E)
デフ sftp_upload (ホスト、ポート、ユーザ名、パスワード、ローカル、リモート):
SF = paramiko.Transport((ホスト、ポート))
sf.connect(ユーザー名=ユーザー名、パスワード=パスワード)
SFTP = paramiko.SFTPClient.from_transport(SF)
試してください:場合 os.path.isdir(ローカル):のための F中:os.listdir(ローカル) sftp.put(os.path.join(ローカル、f)は、os.path.join(リモート+ F))他: sftp.put(リモート、ローカル)を除き、例外として E: プリント( 'アップロード例外'、E)最後に:場合 SFがあります
いない 該当なし:
sf.close()
DEF sftp_download (ホスト、ポート、ユーザ名、パスワード、ローカル、リモート):
グローバル SFTP_DOWNLOAD_FLAG SF = paramiko.Transport((ホスト、ポート)) sf.connect(ユーザー名=ユーザー名、パスワード=パスワード) SFTP paramiko.SFTPClient.from_transport =( SF)のtry:のための Fをして SFTP。 LISTDIR(リモート): sftpAttributes = sftp.lstat(os.path.join(リモート+ F)) FILESIZE = sftpAttributes.st_size IFファイルサイズ:
sftp.get(os.path.join(リモート+のF)、os.path.join(ローカル、f)は、sftp_callback)
他: 続けます
IF SFTP_DOWNLOAD_FLAG:
SFTP_DOWNLOAD_FLAG = Falseの
sftp.remove(os.path.join(リモート+のF))
他に: os.remove(OS .path.join(ローカル、F))
除く例外として:E
プリント('ダウンロード例外'、E)
最後に:場合 SFがあるではないなし: sf.close()
IF __name__ == '__main__' :#
SFTP = sftpconnect(ホスト、ポート、ユーザー名、パスワード) を印刷(SFTP)
|
転載: www.cnblogs.com/lijianming180/p/12361315.html