文件夹传输:基于python、TCP
服务端
import os
import socket
import time
RECVSIZE = 1024 * 1024 * 10
label = '#97'*100
def dirwalker(foldername):
"""
此方法用于遍历目标文件夹
:param foldername:
:return: 一个生成器
"""
walkers = os.walk(foldername)
for walker in walkers:
dirname = walker[0]
files = walker[2]
yield dirname + label
for file in files:
file = dirname + '/' + file
yield label + file + label
with open(file, 'rb') as f:
msg = f.read()
yield msg if msg != b'' else b' '
def dirwalkermsg(foldername, source='sources/'):
"""
用于生产字节流信息
:param foldername: 客户端要copy的文件夹名称
:param source: 服务端数据源
:return: 返回一个字节流生成器
"""
foldername = source + foldername
if not os.path.isdir(foldername):