python入门第二十八天——文件上传
Posted 独孤_败天
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python入门第二十八天——文件上传相关的知识,希望对你有一定的参考价值。
服务端:
1 #!/usr/bin/env python3 2 #-*- coding:utf-8 -*- 3 ‘‘‘ 4 Administrator 5 2018/8/1 6 ‘‘‘ 7 import subprocess 8 import socket,os 9 10 # 创建一个socket: 11 #family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None 12 #创建Socket时,AF_INET指定使用IPv4协议, 13 # 如果要用更先进的IPv6,就指定为AF_INET6 14 # AF_UNIX Unix不同进程之间的通信 15 # SOCK_STREAM指定使用面向流的TCP协议 SOCK_DGRAM UDP协议 16 s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) 17 print(s) 18 address=(‘127.0.0.1‘,8000) 19 #建立连接 20 s.bind(address) 21 #监听设置端口等待客户端的请求数量 22 s.listen(3) 23 24 25 print(‘等待...........‘) 26 BASE_DIR=os.path.dirname(os.path.abspath(__file__)) 27 28 while True: 29 # accept 阻塞 30 conn, addr = s.accept() 31 print(addr) 32 while True: 33 data=conn.recv(1024) 34 cmd,filename,filesize=str(data,"utf8").split("|") 35 path=os.path.join(BASE_DIR,"img",filename) 36 filesize=int(filesize) 37 38 f=open(path,"wb") 39 40 get_sent=0 41 while get_sent != filesize: 42 data=conn.recv(1024) 43 get_sent+=len(data) 44 f.write(data) 45 print("接受完毕。") 46 f.close() 47 48 49 s.close()
客户端:
1 #!/usr/bin/env python3 2 # -*- coding:utf-8 -*- 3 ‘‘‘ 4 Administrator 5 2018/8/1 6 ‘‘‘ 7 import socket,os,sys 8 9 sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 10 print(sck) 11 address = (‘127.0.0.1‘, 8000) #192.168.0.103 12 sck.connect(address) 13 14 BASE_DIR=os.path.dirname(os.path.abspath(__file__)) 15 while True: 16 inp = input(">>>").strip()#post|kanqingzi.jpg 17 18 cmd,path=inp.split("|") 19 path=os.path.join(BASE_DIR,path)#拼接路径 20 21 filename=os.path.basename(path)#需要文件名字 22 filesize=os.stat(path).st_size#需要文件大小 23 #文件打包 24 file_info="post|%s|%s"%(filename,filesize)#字符串拼接 25 sck.sendall(bytes(file_info,"utf8")) 26 27 with open(path,"rb") as f: 28 has_sent=0 29 while has_sent !=filesize: 30 data=f.read(1024) 31 sck.sendall(data) 32 has_sent+=len(data) 33 print("上传成功!!!") 34 35 sck.close()
练习:远程控制对方电脑,并将对方电脑里面的图片发送过来。
以上是关于python入门第二十八天——文件上传的主要内容,如果未能解决你的问题,请参考以下文章
Python入门第四十八天Python丨NumPy 数组连接