需要参数:本地文件目录,远程服务器文件目录。
# @Time : 2021/3/9 13:21
# @Author : Dr.zhang
# @File : ftp上传.py
# @Software: PyCharm
from ftplib import FTP, _SSLSocket,error_perm
from posixpath import dirname
import sys
import socket
from socket import _GLOBAL_DEFAULT_TIMEOUT
def ftpconnect(host, username, password):
ftp = FTP()
ftp.set_debuglevel(2)
ftp.connect(host, 21)
ftp.login(username, password)
return ftp
def uploadfile(dirpath, remotepath):
ftp = ftpconnect("服务器IP", "账号", "密码")
ftp_makedirs_cwd(ftp,'文件夹名字')
# 从本地上传文件到ftp
fp = open(dirpath) # dirpath 是本地目录
ftp.encoding = 'utf-8' # 设置编码,防止中文乱码
ftp.storbinary('STOR ' + remotepath, fp) # 上传
ftp.set_debuglevel(0) # 设置日志级别
ftp.quit()
def ftp_makedirs_cwd(ftp, path, first_call=True):
"""设置“FTP”中给出的FTP连接的当前目录
参数(如ftplib)。),不存在创建目录。
"""
try:
ftp.cwd(path) # 切换到对应目录
except:
ftp_makedirs_cwd(ftp, dirname(path), False) # 新建目录
ftp.mkd(path)
if first_call:
ftp.cwd(path)
if __name__ == "__main__":
uploadfile(r"20210309/1038车天下.mp3", "车天下.mp3")
网友评论