python socket通信编程实现文件上传代码实例
这篇文章主要介绍了pythonsocket通信编程实现文件上传代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
写一个file_receive.py和一个file_send.py程序,由file_send.py上传一个文件,file_receive.py接收上传的文件,写到指定的包内
#file_receive.py
importsocket,subprocess,os
BASE_DIR=os.path.dirname(os.path.abspath(__file__))
sk=socket.socket()
address=('127.0.0.1',8001)
sk.bind(address)
sk.listen(3)
conn,addr=sk.accept()
fileinfo=conn.recv(1024)
filename,filesize=str(fileinfo,'utf8').split('|')
#filename=str(filename,'utf8')
#filesize=int(str(filesize,'utf8'))
path=os.path.join(BASE_DIR,'file_recv',filename)
f=open(path,'wb')
has_received=0
whilehas_received!=int(filesize):
data=conn.recv(1024)
f.write(data)
has_received+=len(data)
f.close()
print('welldone')
sk.close()
#file_send.py
importsocket,os
BASE_DIR=os.path.dirname(os.path.abspath(__file__))
sk=socket.socket()
address=('127.0.0.1',8001)
sk.connect(address)
filename=input("pleaseinputfilename:")
path=os.path.join(BASE_DIR,filename)
filesize=os.stat(path).st_size
fileinfo='%s|%s'%(filename,str(filesize))
sk.sendall(bytes(fileinfo,'utf8'))
f=open(path,'rb')
has_sent=0
whilehas_sent!=int(filesize):
data=f.read(1024)
sk.sendall(data)
has_sent+=len(data)
print('welldone!')
f.close()
sk.close()
文件运行后,实现了将file_send.py上传的test.png文件上传到当前路径下的file_recv包内.
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。