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

  • 荣耀play3可以使用EMUI10吗(荣耀play3使用教程)

    荣耀play3可以使用EMUI10吗(荣耀play3使用教程)

  • 基于位置的建议(系统服务基于位置的建议)

    基于位置的建议(系统服务基于位置的建议)

  • 苹果手机如何控制空调(苹果手机如何控制ipad)

    苹果手机如何控制空调(苹果手机如何控制ipad)

  • 帮陌生人微信辅助注册对自己有什么影响(帮陌生人微信辅助注册了怎么办)

    帮陌生人微信辅助注册对自己有什么影响(帮陌生人微信辅助注册了怎么办)

  • 苹果蓝牙耳机只能苹果手机用吗(苹果蓝牙耳机只有一边有声音怎么办)

    苹果蓝牙耳机只能苹果手机用吗(苹果蓝牙耳机只有一边有声音怎么办)

  • 联通猫注册灯闪烁什么原因(联通猫注册灯闪绿灯和路由器有关系吗)

    联通猫注册灯闪烁什么原因(联通猫注册灯闪绿灯和路由器有关系吗)

  • qq的敲门声是什么消息提示(qq有敲门声什么意思)

    qq的敲门声是什么消息提示(qq有敲门声什么意思)

  • 情侣空间别人看得到吗(情侣空间别人看了被挡了为什么还有头像挂在QQ空间页面)

    情侣空间别人看得到吗(情侣空间别人看了被挡了为什么还有头像挂在QQ空间页面)

  • qq群文件查看下载人(qq群怎么查看文件下载记录)

    qq群文件查看下载人(qq群怎么查看文件下载记录)

  • 主机耳机孔在哪个位置(主机上面的耳机孔怎么不能用)

    主机耳机孔在哪个位置(主机上面的耳机孔怎么不能用)

  • 微信辅助扫码安全吗(微信 扫码 辅助)

    微信辅助扫码安全吗(微信 扫码 辅助)

  • 安装OTG是什么意思

    安装OTG是什么意思

  • 共享单车一次能扫几辆(共享单车一次能用几辆)

    共享单车一次能扫几辆(共享单车一次能用几辆)

  • 如何把两张照片合成一张手机(如何把两张照片合成一张)

    如何把两张照片合成一张手机(如何把两张照片合成一张)

  • 华为接通电话震动怎么设置(华为手机接电话震动)

    华为接通电话震动怎么设置(华为手机接电话震动)

  • 嘀嗒顺风车多久到账(嘀嗒顺风车多久前取消免责)

    嘀嗒顺风车多久到账(嘀嗒顺风车多久前取消免责)

  • 手机上怎么不显示中国移动了(手机上怎么不显示蓝牙标志)

    手机上怎么不显示中国移动了(手机上怎么不显示蓝牙标志)

  • 拼多多怎么换支付宝付款(拼多多怎么换支付宝账号付款)

    拼多多怎么换支付宝付款(拼多多怎么换支付宝账号付款)

  • 怎么找手机淘宝勋章(怎么找手机淘宝删除的订单记录)

    怎么找手机淘宝勋章(怎么找手机淘宝删除的订单记录)

  • 天猫精灵智能音箱怎么用(天猫精灵智能音响哪个音质好)

    天猫精灵智能音箱怎么用(天猫精灵智能音响哪个音质好)

  • 7p和8p的摄像头区别(7P和8P的摄像头一样的吗)

    7p和8p的摄像头区别(7P和8P的摄像头一样的吗)

  • 快手充值怎么退款(快手充值怎么退不了了)

    快手充值怎么退款(快手充值怎么退不了了)

  • game boost开还是不开(game boost开不开)

    game boost开还是不开(game boost开不开)

  • 小型微利企业所得税怎么计算
  • 含税价怎么算不含税价
  • 房产税会计分录怎么写
  • 税率中的速算扣除数是什么
  • 合并报表会计未分配利润怎么填写?
  • 专票如何开具
  • 集团内部资产无偿划转是否纳税增值税
  • 已经报销的发票还会查吗
  • 房地产契税新政策2021退税
  • 售楼部垃圾桶
  • 其他应付款冲销怎么做
  • 运输费计入采购成本的分录
  • 政府机关税号是1开头的吗
  • 发票一直显示在报送中
  • 税法递延纳税
  • 简易征收红字发票怎么在报表中表现
  • 生产负荷的计算
  • 创新券兑付怎么操作
  • 商品进销差价如何结平
  • 企业成本费用包括哪些
  • 小规模计提缴纳增值税
  • 跨年度冲减收入
  • mac清理垃圾怎么清理
  • 月末结转营业税金及附加分录
  • 携税宝续费
  • 可供出售金融资产现在叫什么
  • fpzs1是什么文件可以删除吗
  • 克拉莫16首
  • PHP:mcrypt_cfb()的用法_Mcrypt函数
  • 外贸进出口企业退税
  • el-table-column formatter
  • 总部资产减值测试例题
  • 公司制作横幅计入什么科目?
  • 高新技术企业取消资格怎么处罚
  • vuecdn方式引入
  • 长期应付款列报为什么是后一年的
  • acpi disabled
  • 管理人员工资属于直接费还是间接费
  • 发票内容服务费可以吗?没有明细
  • 银行存款手工明细分类账
  • 营业外收支的账户是什么
  • 帝国cms文件夹介绍
  • mysql中事件的作用
  • 现代服务包括哪些内容是什么
  • 报废产品属于什么会计科目
  • 家庭保洁服务包括什么
  • mysql 查询平均值
  • sql死锁的简单例子
  • 资产负债表是根据科目余额表填的吗
  • 业务招待费税前扣除标准2020
  • 企业的营业税金怎么计算
  • 合作经营利润分配协议
  • 合伙企业一般纳税人六税两费
  • 其他应付款核算范围包括哪些
  • 递延所得税资产和负债账务处理
  • 股权稀释违法吗
  • 自行研发的无形资产入账价值
  • sql server 批量删除
  • Sqlserver中char,nchar,varchar与Nvarchar的区别分析
  • sqlserver 错误6005
  • archlinux安装zsh
  • arch linux安装yay
  • 苹果电脑安装macos怎么安装
  • u盘安装win7视频教程
  • windows10对话框是什么
  • redhat系统界面
  • linux命令使用方法
  • 批处理文件.bat
  • cocos2d schedule
  • 国际安卓应用市场
  • javascript的prompt
  • three.js入门教程(合集)
  • jquery左右滑动菜单
  • perl vs python
  • jquery实现下拉框
  • 湖北耕地占用税标准
  • 税务登记时必须要填银行账号吗
  • 北京市国家税务局发票查询平台
  • 个体户不用开发票只纳税和记账的话还会罚款吗?
  • 重庆市大学生田径锦标赛
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设