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

  • 淘宝网店怎么做推广?(淘宝网店怎么做推广)

    淘宝网店怎么做推广?(淘宝网店怎么做推广)

  • 华为nova9怎么设置字体大小(华为nova9怎么设置锁屏壁纸)

    华为nova9怎么设置字体大小(华为nova9怎么设置锁屏壁纸)

  • qq怎么备份聊天记录(qq怎么备份聊天数据)

    qq怎么备份聊天记录(qq怎么备份聊天数据)

  • iphone已停用连接itunes怎么解锁教程(iphone已停用连接iTunes什么意思)

    iphone已停用连接itunes怎么解锁教程(iphone已停用连接iTunes什么意思)

  • switch主机更新慢(switch更新主机很慢怎么办)

    switch主机更新慢(switch更新主机很慢怎么办)

  • iphone8plus什么时候上市的(iphone8plus什么时候更新ios16吗)

    iphone8plus什么时候上市的(iphone8plus什么时候更新ios16吗)

  • iphone11如何设置相册锁(iphone11如何设置电量显示)

    iphone11如何设置相册锁(iphone11如何设置电量显示)

  • 佳能mg2400可以无线打印吗(佳能mg2400怎么用)

    佳能mg2400可以无线打印吗(佳能mg2400怎么用)

  • win10装win7触摸板失灵(触摸板 win7)

    win10装win7触摸板失灵(触摸板 win7)

  • 小米手环pai什么意思(小米手环哪种型号好)

    小米手环pai什么意思(小米手环哪种型号好)

  • windows old文件夹可以删除吗(windows old文件夹会自动删除吗)

    windows old文件夹可以删除吗(windows old文件夹会自动删除吗)

  • 扩列限时匹配不见了(扩列匹配不到人怎么办)

    扩列限时匹配不见了(扩列匹配不到人怎么办)

  • 手机充电器三根线怎么辨认(手机充电器三根线分别是什么线)

    手机充电器三根线怎么辨认(手机充电器三根线分别是什么线)

  • 哔哩哔哩多少级才能私信(哔哩哔哩多少级可以连麦)

    哔哩哔哩多少级才能私信(哔哩哔哩多少级可以连麦)

  • iphonex换了电池还支持快充吗(iphonex换了电池后充电很慢)

    iphonex换了电池还支持快充吗(iphonex换了电池后充电很慢)

  • 微信怎么关闭刷脸支付(微信怎么关闭刷视频)

    微信怎么关闭刷脸支付(微信怎么关闭刷视频)

  • 电脑休息屏保怎么设置(电脑怎么屏保休息)

    电脑休息屏保怎么设置(电脑怎么屏保休息)

  • 什么是三段设计(“三段式”结构)

    什么是三段设计(“三段式”结构)

  • word页面变小怎么恢复(word页面变很小)

    word页面变小怎么恢复(word页面变很小)

  • 订单回收站在哪里找(京东订单回收站在哪)

    订单回收站在哪里找(京东订单回收站在哪)

  • a站、b站、p站都是什么站(a站b站p站都是什么站)

    a站、b站、p站都是什么站(a站b站p站都是什么站)

  • ctrl+e没反应(ctrl+e按了没反应)

    ctrl+e没反应(ctrl+e按了没反应)

  • 联系人加入黑名怎样可以恢复(联系人加入黑名单对方提示什么)

    联系人加入黑名怎样可以恢复(联系人加入黑名单对方提示什么)

  • uhd是什么意思(相机uhd是什么意思)

    uhd是什么意思(相机uhd是什么意思)

  • 如何获得一个QQ邮箱(如何获得一个全数字的车牌)

    如何获得一个QQ邮箱(如何获得一个全数字的车牌)

  • win10热点怎么限制人数(win10热点怎么限制网速)

    win10热点怎么限制人数(win10热点怎么限制网速)

  • CommonJS的理解(commonjs的特点)

    CommonJS的理解(commonjs的特点)

  • Python常用的画布方法(python默认画布大小)

    Python常用的画布方法(python默认画布大小)

  • 代扣个人所得税怎么算
  • 个人向公司提供劳务,开发票
  • 进项3个点销项13个点,增值税
  • 小规模纳税人销售自建不动产
  • 公司购买食品如何入账
  • 装修费用如何入账
  • 固定资产新规则
  • 会计二级科目是哪个
  • 银行借款的补偿金是什么
  • 超市里的摊位租金贵吗
  • 租赁的房租再出租成本怎么做?
  • 发票融资贷款应该怎么做账?
  • 管理费用是负的是什么意思
  • 以银行存款退还投资者股金
  • 电梯维修增值税
  • 预警税负率表
  • 工资个税合理避税
  • 当前一般纳税人增值税税率
  • 个税合理避税的意义
  • 15-算
  • 物业公司代收暖气费如何开票
  • 经营性租赁怎么做账
  • 工资不在本单位拿取的能加入会员吗
  • 金银首饰的消费税税务处理
  • 店面转让出去收到的钱如何做账?
  • 分期收款销售的核算中发出商品时借什么账户
  • 供热公司向用户提供
  • 结转出租设备的会计分录
  • 企业收到银行未收到怎么做账
  • 发票登记薄的样式是什么
  • win10分辨率调整
  • 无偿赠送是否需要交个人所得税分哪些情况
  • php中使用js
  • 在金税卡里面如何交社保
  • 公司缴纳残保金怎么做账
  • java分页page类
  • rep p
  • 高温补贴入账科目
  • 红字更正法和红字冲销的区别
  • 信用减值损失科目借贷方向
  • 其他收益所得税汇算清缴时需要调增吗
  • ieee compel 2021
  • php框架 hyperf
  • 现金流量表四个部分
  • 城建税减免性质代码是什么意思
  • 融资租赁的种类
  • 预缴所得税年底处理账务吗
  • 企业未分配利润为负数什么原因
  • 税控系统的维护包括哪些内容
  • 固定资产达到预定状态的判定
  • 研发活动发生的费用
  • 材料暂估入库的账务处理
  • 未担保余值举例
  • 会计凭证保管期限30年是哪一年开始的
  • 销售部门招待费用预算
  • 分配股利需要缴纳个税吗
  • 增值税专用发票几个点
  • 发票缴销了还能恢复吗
  • 新单位建账怎么做
  • 息税前利润是什么税之前
  • mysql的知识点
  • ie8 开发者工具
  • mmc不能打开文件services.msc
  • window7截图工具无法使用
  • win8摄像头权限怎么设置
  • centos7怎么配置
  • supporter5.exe - supporter5是什么进程
  • unity调用android方法
  • nodejs edge
  • 用python编写程序
  • 数字图像处理期末考试
  • javascript模板
  • js初级教程
  • jquery 插件编写
  • jquery的ajax提交form表单的两种方法小结(推荐)
  • 专项调查法
  • 台资企业有什么
  • 税务局六大攻坚
  • 皖事通新农合缴费征收方式是什么?
  • 什么是党建工作一体化
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设