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

  • qq音乐关闭续费服务(qq音乐关闭续费服务苹果手机)

    qq音乐关闭续费服务(qq音乐关闭续费服务苹果手机)

  • 三星耳机怎么连接手机(三星耳机怎么连接苹果手机)

    三星耳机怎么连接手机(三星耳机怎么连接苹果手机)

  • 手机屏幕边有白色亮线(手机屏幕边有白边)

    手机屏幕边有白色亮线(手机屏幕边有白边)

  • 手机储存异常,请删除账号重试(手机储存异常怎么办)

    手机储存异常,请删除账号重试(手机储存异常怎么办)

  • 苹果7硬重启(苹果硬重启白屏)

    苹果7硬重启(苹果硬重启白屏)

  • 华为怎么弄返回键位置(华为怎么弄返回图标)

    华为怎么弄返回键位置(华为怎么弄返回图标)

  • 华为手机突然不能全屏播放(华为手机突然不计步的原因)

    华为手机突然不能全屏播放(华为手机突然不计步的原因)

  • 代理服务器拒绝连接是什么意思(代理服务器拒绝连接怎么处理mac)

    代理服务器拒绝连接是什么意思(代理服务器拒绝连接怎么处理mac)

  • 微信男女在哪里改(微信男女在哪里聊天)

    微信男女在哪里改(微信男女在哪里聊天)

  • 华为nova5i pro怎么设置返回键(华为nova5ipro怎么读音发音)

    华为nova5i pro怎么设置返回键(华为nova5ipro怎么读音发音)

  • ipad不贴膜行吗(ipad不贴膜用pencil伤屏幕吗)

    ipad不贴膜行吗(ipad不贴膜用pencil伤屏幕吗)

  • 标压和低压的区别(标压和低压的区别 h t)

    标压和低压的区别(标压和低压的区别 h t)

  • vip缓存过期还能看吗(vip缓存后vip过期了还能看吗)

    vip缓存过期还能看吗(vip缓存后vip过期了还能看吗)

  • 苹果8plus屏幕尺寸(苹果8plus屏幕尺寸和14pro对比)

    苹果8plus屏幕尺寸(苹果8plus屏幕尺寸和14pro对比)

  • 哔哩哔哩会员购怎么退款(哔哩哔哩会员购欧气宝箱怎么弄)

    哔哩哔哩会员购怎么退款(哔哩哔哩会员购欧气宝箱怎么弄)

  • iponeid怎么注册(苹果appleid怎么注册)

    iponeid怎么注册(苹果appleid怎么注册)

  • 苹果11没有手写功能吗(苹果11没有手写输入)

    苹果11没有手写功能吗(苹果11没有手写输入)

  • 桔子酒店蓝牙音响用法(桔子酒店蓝牙音响怎么连接)

    桔子酒店蓝牙音响用法(桔子酒店蓝牙音响怎么连接)

  • 淘宝未读是肯定没读吗(淘宝显示未读就是真的没看吗)

    淘宝未读是肯定没读吗(淘宝显示未读就是真的没看吗)

  • 网关是什么怎么填(网关是什么怎么看)

    网关是什么怎么填(网关是什么怎么看)

  • kindle阅读时如何退出(kindle阅读如何导入电子书)

    kindle阅读时如何退出(kindle阅读如何导入电子书)

  • 为什么快手直播没有通知(为什么快手直播伴侣没有声音)

    为什么快手直播没有通知(为什么快手直播伴侣没有声音)

  • pcas.exe是什么进程(pcas service进程可以关闭么)

    pcas.exe是什么进程(pcas service进程可以关闭么)

  • 怎么关闭Win10 20H2快速启动功能(怎么关闭win10搜索栏)

    怎么关闭Win10 20H2快速启动功能(怎么关闭win10搜索栏)

  • 半球形的谢尔亨里克森天文台,挪威斯瓦尔巴群岛 (© Vincent Fournier/Gallery Stock)

    半球形的谢尔亨里克森天文台,挪威斯瓦尔巴群岛 (© Vincent Fournier/Gallery Stock)

  • 一般纳税人收到普票可以抵扣吗
  • 合并报表是把资产负债表相加吗
  • 工程材料发票备注要求
  • 增值税票购买份数满了怎么办
  • 其他应付款无法支付规定
  • 新会计准则开办费分摊
  • 养老机构提供的养老服务免增值税吗
  • 工会经费如何做会计分录科目
  • 2019招标费用收取标准
  • 一次性伤残就业赔偿标准
  • 如何查询以前申诉进度
  • 收到分红款企业所得税怎么填报
  • 其他综合收益的编码
  • 机票改签费要开发票吗
  • 增值税普通发票税率
  • 进口商品关税调整
  • Win11系统怎么更换桌面壁纸
  • 增发股票会计科目
  • 职工福利费算职工薪酬吗
  • 行政事业单位临聘人员
  • 公众号采集文章手机操作
  • 固定资产减值判断标准
  • 录制权限怎么打开
  • windows11更新多大
  • hotkey可以卸载吗
  • php fgetcsv
  • php将数字转为字符串
  • 企业所得税季度预缴是什么意思
  • 使用二氧化碳灭火器时人应该站在什么位置
  • 合伙企业的股息红利要交税吗
  • 支付税控服务费的账务处理
  • 浏览器同源策略限制
  • 子公司破产对母公司是利好还是利空
  • 小企业会计准则没有以前年度损益调整科目
  • 采矿权如何进行融资
  • 分公司在外地,企业怎么交税
  • 日常费用报销表格
  • 公司进项抵税
  • mysql 子查询
  • 企业所得税营业外收入
  • 个税汇算要清缴么
  • 免税企业税金及附加计算
  • 扫码开票软件
  • 以前年度买的固定资产一直未入账,现在还能入账吗?
  • 应付账款多怎么办
  • 固定资产出售账面价值计入什么科目
  • 企业所得税季报与年报的关系
  • 如何进行汇算清缴
  • 小规模纳税人年收入不能超过多少
  • 环保局检查锅炉房都查什么
  • 内勤会计是不是不算会计
  • MySQL Semisynchronous Replication介绍
  • mysql复制命令
  • winxp文件夹选项在哪
  • 电脑开机一直显示windowsxp
  • windows10 rs2
  • 电脑显示windowsxp不能进入桌面
  • 怎么操作win10系统
  • smss.exe是干嘛的
  • 笔记本win8.1怎么重装系统
  • win8设置在哪
  • win7系统无线鼠标不能连接
  • pops基本属性
  • Androidannotation使用之@Rest获取资源及用户登录验证(一)
  • 拖曳对象时用的命令
  • msoobe命令
  • linux怎么查看tomcat位置
  • 很好的无光照模式叫什么
  • jquery删除节点的元素
  • linux中的shell命令
  • js实现页面跳转跳到主页
  • python数字类型及操作
  • unity开发平台
  • [Phonegap+Sencha Touch] 移动开发50 Android修改新建虚拟机存放的位置
  • [置顶] [Android Studio 权威教程]Android Studio 三种添加插件的方式
  • 外经证的有效期是多久
  • 小规模企业零申报怎么操作
  • 大同税务局官网录取名单
  • 如何在国税网查看社保人员信息
  • 宁波税务局qzzn
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设