位置: 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装饰器(九步功法)

  • 苹果口罩面部识别怎么设置15.3(苹果口罩面部识别向下看)

    苹果口罩面部识别怎么设置15.3(苹果口罩面部识别向下看)

  • iphone13pro怎么设置铃声(iphone13pro怎么设置来电铃声)

    iphone13pro怎么设置铃声(iphone13pro怎么设置来电铃声)

  • 微信别人加不上我怎么回事(微信别人加不上我怎么办)

    微信别人加不上我怎么回事(微信别人加不上我怎么办)

  • 美图秀秀黑白照片怎么弄(美图秀秀黑白照片)

    美图秀秀黑白照片怎么弄(美图秀秀黑白照片)

  • 快手怎么把评论隐藏了(快手怎么把评论设置自己可见)

    快手怎么把评论隐藏了(快手怎么把评论设置自己可见)

  • 三星手机怎么强制开机(三星手机怎么强制格式化)

    三星手机怎么强制开机(三星手机怎么强制格式化)

  • 怎么鉴别7p是原装屏幕(如何分辨iphone7p真假)

    怎么鉴别7p是原装屏幕(如何分辨iphone7p真假)

  • 淘宝追评在哪里看(手机淘宝追评在哪里)

    淘宝追评在哪里看(手机淘宝追评在哪里)

  • 小米手机的睡眠模式建议开吗(小米手机的睡眠监测数据在哪里看)

    小米手机的睡眠模式建议开吗(小米手机的睡眠监测数据在哪里看)

  • 2340*1080是多少寸(屏幕2340*1080是多少寸)

    2340*1080是多少寸(屏幕2340*1080是多少寸)

  • 微信不符合辅助要求怎么办(微信不符合辅助验证资格是什么原因)

    微信不符合辅助要求怎么办(微信不符合辅助验证资格是什么原因)

  • 支付宝验证人脸失败过多久可以重新识别(支付宝验证人脸失败是怎么回事)

    支付宝验证人脸失败过多久可以重新识别(支付宝验证人脸失败是怎么回事)

  • qq怎么关联账号不用验证码(qq怎么关联账号后怎么看对方账号)

    qq怎么关联账号不用验证码(qq怎么关联账号后怎么看对方账号)

  • ipad卡住了没反应怎么办(ipad卡住不动了)

    ipad卡住了没反应怎么办(ipad卡住不动了)

  • airpods2可以连两个手机吗(airpods2可以连两个安卓手机吗)

    airpods2可以连两个手机吗(airpods2可以连两个安卓手机吗)

  • ipad mini有几代(ipad mini现在有几代)

    ipad mini有几代(ipad mini现在有几代)

  • 华为gt2怎么换表盘(华为gt2换表带)

    华为gt2怎么换表盘(华为gt2换表带)

  • 拼多多的差评怎么改(拼多多差评怎样才能让别人看不到差评?)

    拼多多的差评怎么改(拼多多差评怎样才能让别人看不到差评?)

  • 荣耀8x怎么查看激活日期(荣耀8x怎么查看手机使用时间)

    荣耀8x怎么查看激活日期(荣耀8x怎么查看手机使用时间)

  • 最右分享的链接怎么打开(最右的找资源在哪里)

    最右分享的链接怎么打开(最右的找资源在哪里)

  • 桌面鼠标右键菜单如何清理?(桌面鼠标右键菜单设置)

    桌面鼠标右键菜单如何清理?(桌面鼠标右键菜单设置)

  • 基于Transformer的交通预测模型部分汇总【附源代码】(基于transformer的文本分类)

    基于Transformer的交通预测模型部分汇总【附源代码】(基于transformer的文本分类)

  • 人力资源公司怎么和企业谈合作
  • 没有签订劳动合同可以直接离职吗
  • 出口退税的条件有哪些
  • 已注册登记的机动车有什么情形的
  • 个税两种申报方式哪种合算
  • 开票的预收款怎么处理
  • 基本存款账户可以换银行吗?
  • 已认证红字信息表
  • 个人所得税累计收入
  • 在建工程处置通过固定资产清理吗
  • 计提坏账准备怎么理解
  • 或有负债在报表附注哪里
  • 车辆购置税账务怎么处理流程
  • 企业股东投资
  • 餐费开专票有什么影响
  • 股权转让个人交的印花税可以入账吗
  • 营改增的重点是什么
  • 案例分析个人心得体会
  • 税控盘没有反写会怎样
  • 委托出口货物怎么办理退免税?
  • 公司转账给法人最多可以转多少
  • 核销单丢失后应该怎么挂失和补录处理呢?
  • 转销和冲销是什么意思
  • 增值税当月计提当月交可以吗
  • 少付的运费如何做分录
  • 小型微利企业的
  • 公司控股的公司下子公司有哪些
  • 更改onedrive文件夹位置
  • 生产企业销售给其他单位的生产工具
  • mac如何强制退出全屏
  • 私立幼儿园收费归哪个部门管
  • 个人所得税如何退税操作步骤
  • 公司购买空调计入什么费用
  • mac怎么卸载软件core sync
  • KB5004296无法安装,提示错误代码:0x800f0990的解决方法
  • win10开机强制进入高级选项怎么退出
  • 有哪些常见的不可数名词英语
  • hottray.exe是什么进程 有什么作用 hottray进程查询
  • php格式转换
  • php如何防止后门
  • thinkphp5框架介绍
  • 微信小程序入门指南
  • echarts柱状图立体
  • Vue3:探讨一下mixin
  • iscsiadm命令详解
  • 借款利息收入发票
  • 企业资产的范围
  • 织梦怎么改文字
  • 拆迁补偿收入是否缴纳所得税
  • 归属于母公司所有者权益合计
  • 销售旧货的增值税是销项税吗
  • 承兑汇票是属于什么科目
  • 给个体工商户打工受伤怎么办
  • 业务招待费的所得税扣除
  • 支付运费的会计怎么记录运输费
  • 先付款后签协议是否违法
  • 生产企业成本核算案例
  • 私车公用发票去哪个税务局开
  • 应付职工薪酬的核算内容
  • 软件购买商城
  • 政府专款专用
  • 民间非营利组织包括哪些单位
  • 改良设备的入账价值
  • 过路费属于会计哪个科目
  • 期后事项的分类及处理原则
  • 记账凭证分为哪几类,应具备哪些主要内容
  • 简单介绍清明上河图
  • 怎么给网络设置防火墙
  • linux进程管理实验总结
  • win7系统的安装
  • linux连接windows的服务redis
  • linux中修改命令
  • 混合痔疮怎么治疗最好方法 女性
  • ug怎么加载制图模板
  • adb push、adb install 和强制安装
  • Python的内置字典数据类型为___
  • 国家税务局吉林省税务局官网app
  • 如何查询车辆购买的保险是哪家保险公司
  • 个人所得税app可以更改电话号码吗
  • 北京买新车购置税怎么算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设