python ftp 传输文件
# -*- coding: utf-8 -*-
# 本地bytes 数据上报服务器同时创建文件
from ftplib import FTP
import time, _io
from constant import ftp_host, ftp_port, ftp_pw, ftp_user, ftp_to_path
from log_cf import logger
def ftp_connect():
ftp = FTP()
# ftp.set_debuglevel(2) #打开调试级别2,显示详细信息
ftp.connect(ftp_host, ftp_port) # 连接
ftp.login(ftp_user, ftp_pw) # 登录,如果匿名登录则用空串代替即可
# ftp.login("", "") # 登录,如果匿名登录则用空串代替即可
ftp.cwd(ftp_to_path) # 改变ftp的操作目录
return ftp
ftp_obj = ftp_connect() # 只有一个连接, 而不是发送一个文件进行一次连接
def send2ftp_server(content): # 默认上传最大数据8192, 分块上传
# content: bytes
fp = _io.BufferedReader(_io.BytesIO(content)) # 创建fp 对象, 用于ftp 创建文件
filename = str(time.time()) # 时间戳做文件名, 自动排序
tmp_filename = filename + 'tmp' # 传输为完成的文件
global ftp_obj # 使用全局变量, 不多创建连接
try:
ftp_obj.storbinary('STOR ' + tmp_filename, fp) # 上传文件
except Exception as e: # BrokenPipeError 10分钟不用会断开
print(type(e), e)
ftp_obj = ftp_connect()
try:
ftp_obj.storbinary('STOR ' + tmp_filename, fp)
except Exception as e:
logger.warning("信息上报FTP失败: {}: {}".format(type(e), e))
return False
ftp_obj.rename(tmp_filename, filename)
return True
def close_ftp(): # 不调用, 不主动断开
try:
ftp_obj.quit()
except Exception as e:
logger.warning("用ftp.quit()断开链接失败: " + str(e))
ftp_obj.close() # 服务开启, 连上不断
if __name__ == '__main__':
pass
python ftp 传输文件的更多相关文章
- Python+USB+Vnet+FTP传输文件开发记录
做一个Python+USB+Vnet+FTP传输文件开发记录
- mac与windows通过ftp传输文件
1.两个系统相互传文件,比较通用的方式是用QQ,两台电脑一台各登陆一个qq,发文件就行了,在同一个网段时,qq会自动转换为按局域网的方式传输. 2.本人不愿安装qq,以ftp方式进行传输,先在wndo ...
- FTP传输文件被破坏的问题(Linux、Busybox)
在网络设备上抓包后,通过FTP传输到本机,发现抓包文件破坏.更换tftp后文件正常,定位问题在FTP上. FTP的传输模式有两种:①ASCII ②二进制 ①ASCII: 以ASCII编码的方式传输文 ...
- 在Telnet中用FTP传输文件
如果用 Telnet 传输文件? 在自己的机子上架设FTP服务器,然后登陆远程机后,就可以登录自己的FTP.利用PUT(上传命令),就可以把远程电脑的文件下载下来. 如果出现连接不上FTP,也 ...
- python socket 传输文件
推荐资料 https://www.cnblogs.com/xiaokang01/p/9865724.html socket传输文件 思路: # 先将报头转换成字符串(json.dumps), 再将字符 ...
- 防火墙导致FTP传输文件为0
在使用 ftpClient 传输文件到FTPserver时,在别的机器上可以正常使用,但是到自己的机器有就始终是0文件,发现是Mcafee 防火墙导致的,只要让防火墙放行即可. Mcafee防火墙的放 ...
- FTP传输文件
感谢其他技术人员的分享.我转发,添加个人使用. public class TransFTP {/// <summary> /// 上传文件 /// </summary> /// ...
- WIN7 VMware Ubuntu虚拟机连接secureCRT及ftp传输文件
一.安装vmware没有问题,网络设置以NAT方式(VMnet8是vmware专属的虚拟网卡).安装完毕后设置虚拟机的 VirtualNetworkEditor(可以再开始->所有程序VMwar ...
- Python Socket传输文件
发送端可以不停的发送新文件,接收端可以不停的接收新文件. 例如:发送端输入:e:\visio.rar,接收端会默认保存为 e:\new_visio.rar,支持多并发,具体实现如下: 接收端: 方法一 ...
随机推荐
- spring入门 依赖入注的三种方式(1)
第一种:构造器参数注入 第二种:setter方法属性注入(setter方法的规范-JavaBean规范) 第三种:接口注入 Bean 属性的注入:对一个对象的属性的赋值 1.构造器参数注入: publ ...
- python之psutil
psutil = process and system utilities, psutil是个跨平台库,能够轻松实现获取系统运行的进程和系统利用率,包括CPU.内存.磁盘.网络等信息. Linux系统 ...
- 7款不错的 CI/CD工具
时至今日,越来越多的工程团队开始实行敏捷开发,借以推动更短.更快的发布周期.而代码库的增长与更高的生产构建频率,也带动持续集成与持续部署/交付工具快速兴起.如果您有意提升发布频率,或者是不太清楚哪些工 ...
- fdisk 分区及 swap
使用虚拟机创建挂载点 一,创建 windows 硬盘 创建
- python大法好——多线程
Python 多线程 多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的任务放到后台去处理. 用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件 ...
- Linux查看与挂载新磁盘
问题 把CentOS都换成了Ubuntu Server(16.04 LTS),用df -h查看磁盘占用情况,确发现之前插入的一块大容量磁盘/dev/sdb1消失了.是磁盘坏了?还是没被系统识别? 解决 ...
- C++的正则
C++的正则封装的不丰富.只有最基础的三个主要的函数(也可能是我孤陋寡闻).要有更为丰富的功能需要自己进一步组合. 我目前只需要循环查找这个功能,并且我也不知道c++的正则支持正则的哪些功能; 代码如 ...
- layui时间控件,获取页面选中的时间值。
先贴上html文档 <div class='layui-form'> <div class="layui-form-item"> <div class ...
- springCloud面试题
1.SpringCloud和Dubbo SpringCloud和Dubbo都是现在主流的微服务架构SpringCloud是Apache旗下的Spring体系下的微服务解决方案Dubbo是阿里系的分布式 ...
- 项目需求分析与建议-NABCD模型
N(Need 需求) 首先我们的创意解决了现有阶段学校查空余教师的问题,充分解决了同学们上自习却找不到教室的苦衷,同时也会适当的拓展一些适当的学习计时功能或者每日一语等等,来帮助同学们来控制好学习时间 ...