python 3 ftpクライアント操作
1666 ワード
#coding=utf-8
import ftplib
import os
import socket
class MyFtp():
def __init__(self):
self.ftp_client = ftplib.FTP()
def ftp_connect(self, ftp_ip, ftp_port, ftp_username, ftp_password):
try:
self.ftp_client.connect(host=ftp_ip, port=ftp_port, timeout=10)
except (socket.error, socket.gaierror) as e:
print('Error, cannot reach ' + ftp_ip)
return
else:
print('Connect To Host Success...')
try:
self.ftp_client.login(user=ftp_username, passwd=ftp_password)
except ftplib.error_perm:
print('Username or Passwd Error')
self.ftp_client.quit()
return
else:
print('Login Success...')
return 1000;
def ftp_download(self, remotepath, localpath):
try:
self.ftp_client.retrbinary('RETR %s' %remotepath, open(localpath, 'wb').write)
except ftplib.error_perm:
print('File Error')
os.unlink(localpath)
else:
print('Download Success...')
self.ftp_client.quit()
def ftp_upload(self, remotepath, localpath):
try:
self.ftp_client.storbinary('STOR %s' %remotepath, open(localpath, 'rb'))
except ftplib.error_perm:
print('File Error')
os.unlink(localpath)
else:
print('Upload Success...')
self.ftp_client.quit()
if __name__ == '__main__':
HOST = '10.0.19.104'
PORT = '21'
USER = 'ftp'
PASSWD = '888888'
#
my_ftp = MyFtp()
if my_ftp.ftp_connect(HOST, PORT, USER, PASSWD) == 1000:
#my_ftp.ftp_download('./ftp.py', './ftp.py') #
my_ftp.ftp_upload('./ftp.py', './ftp1.py') #