位置: IT常识 - 正文

python怎么传送文件(python文件间传递参数)

编辑:rootadmin

推荐整理分享python怎么传送文件(python文件间传递参数),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python传输图片最好的办法,python文件怎么发给别人运行,python数据怎么传递给html,python 传送文件,python 传输文件,python怎么传文件,python 传送文件,python怎么传文件,内容如对您有帮助,希望把文章链接给更多的朋友!

在python中传送文件的方法:1、将报头转换成字符串【json.dumps】, 再将字符串的长度打包;2、发送报头长度和报头内容,然后放真实内容;3、将报头长度解压,得到头部信息的大小,再接收头部信息,反序列化即可

python怎么传送文件(python文件间传递参数)

思路:

# 先将报头转换成字符串(json.dumps), 再将字符串的长度打包 # 发送报头长度,发送报头内容,最后放真实内容 # 报头内容包括文件名,文件信息,报头 # 接收时:先接收4个字节的报头长度, # 将报头长度解压,得到头部信息的大小,在接收头部信息, 反序列化(json.loads) # 最后接收真实文件

服务端

#!/usr/bin/envpython#-*-coding:utf-8-*-#@File:文件传输-服务端.py#@Software:PyCharmfromsocketimport*importstructimportjsonimportostcp_server=socket(AF_INET,SOCK_STREAM)ip_port=(('127.0.0.1',8080))buffsize=1024#端口的重复利用tcp_server.setsockopt(SOL_SOCKET,SO_REUSEPORT,1)tcp_server.bind(ip_port)tcp_server.listen(5)print('还没有人链接')whileTrue:'''链接循环'''conn,addr=tcp_server.accept()print('链接人的信息:',addr)whileTrue:ifnotconn:print('客户端链接中断')break'''通信循环'''filemesg=input('请输入要传送的文件名加后缀>>>').strip()filesize_bytes=os.path.getsize(filemesg)#得到文件的大小,字节filename='new'+filemesgdirc={'filename':filename,'filesize_bytes':filesize_bytes,}head_info=json.dumps(dirc)#将字典转换成字符串head_info_len=struct.pack('i',len(head_info))#将字符串的长度打包#先将报头转换成字符串(json.dumps),再将字符串的长度打包#发送报头长度,发送报头内容,最后放真是内容#报头内容包括文件名,文件信息,报头#接收时:先接收4个字节的报头长度,#将报头长度解压,得到头部信息的大小,在接收头部信息,反序列化(json.loads)#最后接收真实文件conn.send(head_info_len)#发送head_info的长度conn.send(head_info.encode('utf-8'))#发送真是信息withopen(filemesg,'rb')asf:data=f.read()conn.sendall(data)print('发送成功')

客户端

#!/usr/bin/envpython#-*-coding:utf-8-*-#@File:文件传输_客户端.py#@Software:PyCharmfromsocketimport*importstructimportjsonimportosimportsysimporttimefrom进度条importprocess_bartcp_client=socket(AF_INET,SOCK_STREAM)ip_port=(('127.0.0.1',8080))buffsize=1024tcp_client.connect_ex(ip_port)print('等待链接服务端')whileTrue:head_struct=tcp_client.recv(4)#接收报头的长度,ifhead_struct:print('已连接服务端,等待接收数据')head_len=struct.unpack('i',head_struct)[0]#解析出报头的字符串大小data=tcp_client.recv(head_len)#接收长度为head_len的报头内容的信息(包含文件大小,文件名的内容)head_dir=json.loads(data.decode('utf-8'))filesize_b=head_dir['filesize_bytes']filename=head_dir['filename']#接受真的文件内容recv_len=0recv_mesg=b''old=time.time()f=open(filename,'wb')whilerecv_len<filesize_b:percent=recv_len/filesize_bprocess_bar(percent)iffilesize_b-recv_len>buffsize:recv_mesg=tcp_client.recv(buffsize)f.write(recv_mesg)recv_len+=len(recv_mesg)else:recv_mesg=tcp_client.recv(filesize_b-recv_len)recv_len+=len(recv_mesg)f.write(recv_mesg)print(recv_len,filesize_b)now=time.time()stamp=int(now-old)print('总共用时%ds'%stamp)f.close()

进度条

#!/usr/bin/envpython#-*-coding:utf-8-*-#@File:进度条.py#@Software:PyCharmimportsysimporttimedefprocess_bar(precent,width=50):use_num=int(precent*width)space_num=int(width-use_num)precent=precent*100#第一个和最后一个一样梯形显示,中间两个正确,但是在python2中报错#print('[%s%s]%d%%'%(use_num*'#',space_num*'',precent))#print('[%s%s]%d%%'%(use_num*'#',space_num*'',precent),end='\r')print('[%s%s]%d%%'%(use_num*'#',space_num*'',precent),file=sys.stdout,flush=True,end='\r')#print('[%s%s]%d%%'%(use_num*'#',space_num*'',precent),file=sys.stdout,flush=True)#foriinrange(21):#precent=i/20#process_bar(precent)#time.sleep(0.2)

本文链接地址:https://www.jiuchutong.com/zhishi/310693.html 转载请保留说明!

上一篇:织梦cms如何给TAG加链接,去掉TAG字数限制(织梦怎么新建页面)

下一篇:九步就可入门Python装饰器(九步功法)

  • 华为p9带nfc功能吗(华为手机p9的nfc在哪里设置)

    华为p9带nfc功能吗(华为手机p9的nfc在哪里设置)

  • 剪映怎么让视频高清(剪映怎么让视频画面暂停一段时间)

    剪映怎么让视频高清(剪映怎么让视频画面暂停一段时间)

  • 怎么修复解析包错误(解析包损坏怎么办)

    怎么修复解析包错误(解析包损坏怎么办)

  • usb识别不出来怎么解决(usb识别不了怎么办)

    usb识别不出来怎么解决(usb识别不了怎么办)

  • 如何找回抖音已删视频(如何找回抖音已删除的私信聊天记录)

    如何找回抖音已删视频(如何找回抖音已删除的私信聊天记录)

  • 淘宝ppc是什么意思(淘宝里面ppc是什么意思)

    淘宝ppc是什么意思(淘宝里面ppc是什么意思)

  • 手机qq共同好友算自己一个吗(手机qq共同好友怎么打开)

    手机qq共同好友算自己一个吗(手机qq共同好友怎么打开)

  • a1528支持什么网络(a1529支持什么网络)

    a1528支持什么网络(a1529支持什么网络)

  • 怎么添加空白页到下一页(怎么添加空白页word)

    怎么添加空白页到下一页(怎么添加空白页word)

  • cpu坏了能修吗(手机主板cpu坏了能修吗)

    cpu坏了能修吗(手机主板cpu坏了能修吗)

  • 安卓手机微信夜间模式怎么开启(安卓手机微信怎么调夜间模式)

    安卓手机微信夜间模式怎么开启(安卓手机微信怎么调夜间模式)

  • 一级标题二级标题三级标题怎么设置(一级标题二级标题三级标题格式范文)

    一级标题二级标题三级标题怎么设置(一级标题二级标题三级标题格式范文)

  • 手机QQ可以录屏吗(手机qq录屏保存在哪个文件夹)

    手机QQ可以录屏吗(手机qq录屏保存在哪个文件夹)

  • 全网通增强版什么意思(中国移动增强版全网通)

    全网通增强版什么意思(中国移动增强版全网通)

  • oneplusa5010这什么手机(oneplusa5000)

    oneplusa5010这什么手机(oneplusa5000)

  • 显示屏是内屏吗(屏幕显示是内屏还是外屏)

    显示屏是内屏吗(屏幕显示是内屏还是外屏)

  • 华为p30卡顿怎么解决(华为p30卡顿怎么解决办法)

    华为p30卡顿怎么解决(华为p30卡顿怎么解决办法)

  • android开发主要用什么语言(android开发介绍)

    android开发主要用什么语言(android开发介绍)

  • 低流量模式是怎么回事(低流量数据模式)

    低流量模式是怎么回事(低流量数据模式)

  • word2003页面设置在哪(word2003页面设置横向纵向)

    word2003页面设置在哪(word2003页面设置横向纵向)

  • 爱奇艺怎么设置经典版(爱奇艺怎么设置主设备)

    爱奇艺怎么设置经典版(爱奇艺怎么设置主设备)

  • 华为p30指示灯设置(华为p30pro指示灯)

    华为p30指示灯设置(华为p30pro指示灯)

  • 千牛保证金在哪里交(千牛保证金在哪里交电脑)

    千牛保证金在哪里交(千牛保证金在哪里交电脑)

  • oppoa9和a9x区别(oppo a9和oppoa9x)

    oppoa9和a9x区别(oppo a9和oppoa9x)

  • win10屏幕黑屏就剩鼠标(win10屏幕黑屏就剩鼠标调好重启又恢复正常)

    win10屏幕黑屏就剩鼠标(win10屏幕黑屏就剩鼠标调好重启又恢复正常)

  • YOLOv5实战之输电线路绝缘子缺陷检测识别(yolov5 output)

    YOLOv5实战之输电线路绝缘子缺陷检测识别(yolov5 output)

  • 业务招待费的税金可以抵扣吗
  • 货款不入公司账户属什么行为
  • 建筑物进项税额可以抵扣吗
  • 汽车牌照费用标准
  • 营业执照注销还需要交钱吗
  • 土地使用权分割转让依据
  • 防伪税控系统中的设备包括哪些
  • 分支机构是不是需要设立账簿
  • 偶然所得个税怎么计算公式
  • 律师事务所日常管理松懈混乱整改措施
  • 机动车强制保险新政策
  • 代收车船税是什么意思必须收吗
  • 公司用自己的设备投资怎么交税呢怎么做账
  • 初级备考日记
  • 利息支出应计入
  • 机打发票验旧是什么意思
  • 出口转内销申报需要先做出口退税吗
  • 新开办公司前三个月没交社保,后面正常缴纳
  • 选择简易征收
  • php关联数组转索引数组
  • PHP:mb_regex_encoding()的用法_mbstring函数
  • 外购固定资产的税率
  • 消费税的会计分录怎么写
  • vue 使用高德地图
  • 落基山国家公园攻略
  • 固定资产明细账登记
  • thinkphp6调用模型的方法
  • 业务招待费的账务处理金额
  • 职工教育经费是不是教育费附加
  • 文化体育用品批发城有哪些
  • vue父子组件生命周期钩子执行顺序
  • 存货跌价准备确认损失
  • 可行性研究合同印花税
  • 现金流量风险怎么解决
  • 企业所得税退税如何进行账务处理
  • 织梦cms怎么样
  • 清算期间还需要报税吗
  • php用户评论
  • 职工保险报账
  • 周转材料低值易耗品怎么结转
  • 长期投资减值准备属于什么会计科目
  • 税务稽查补缴上年所得税分录
  • 公对公转账货款写成了往来款怎么办
  • 其他应付款转应付账款分录
  • 公司基本户的钱怎么用
  • 新成立的公司开什么银行账户
  • 服务业成本的会计核算
  • 机关事业单位以高于市场价租赁房屋
  • 小规模纳税人注册资金要求多少
  • 税前扣除项目主要包括
  • 收到银行结息收入怎么做会计分录
  • 预收账款最多挂几年
  • 商业企业费用的计算方法
  • mysql事务用法
  • win8系统启动慢怎么办
  • windows10预览版怎么样
  • 设备管理器xp系统
  • xp系统能用谷歌吗
  • windows安装软件需要管理员权限
  • 中国有多少台百万机组
  • win 8系统怎么样
  • ScanMailOutLook.exe - ScanMailOutLook是什么进程 有什么用
  • linux卡屏
  • 如何在linux中安装软件
  • 在Linux系统中安装MySQL
  • linux tar -xzvf
  • 进windows花屏
  • 将list转换为json字符串
  • 使用JQuery FancyBox插件实现图片展示特效
  • jquery操作html代码
  • Android自定义对话框
  • perl 计算
  • 一波JavaScript日期判断脚本分享
  • js 拍照
  • jquery 动态绑定click事件
  • node.js权威指南
  • 国家税务总局洛阳市分局
  • 上海税务培训中心
  • 国地税联合办公
  • 专用发票章盖在哪里
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设