day 31 socketserver 和ftp打印进度条

import socketserver
class Myserver(socketserver.BaseRequestHandler):
    def handle(self):
        self.data = self.request.recv(1024).strip()
        print("{} wrote:".format(self.client_address[0]))
        print(self.data)
        self.request.sendall(self.data.upper())
if __name__ == "__main__":
    HOST, PORT = "127.0.0.1", 9999
    # 设置allow_reuse_address允许服务器重用地址
    socketserver.TCPServer.allow_reuse_address = True
    # 创建一个server, 将服务地址绑定到127.0.0.1:9999
    #server = socketserver.TCPServer((HOST, PORT),Myserver)
    server = socketserver.ThreadingTCPServer((HOST, PORT),Myserver)
    # 让server永远运行下去,除非强制停止程序
    server.serve_forever()
tcp_server.py
 
打印进度条
一、
    import sys
    import time
    for i in range(50):
        sys.stdout.write('>')
        sys.stdout.flush()
        time.sleep(0.2)
二、
    #总共接收到的大小和总文件大小的比值:
    #all_size_len表示当前总共接受的多长的数据,是累计的
    #file_size表示文件的总大小
        per_cent = round(all_size_len/file_size,2) #将比值做成两位数的小数
    #通过\r来实现同一行打印,每次打印都回到行首打印
        print('\r'+ '%s%%'%(str(int(per_cent*100))) + '*'*(int(per_cent*100)),end='')  #由于float类型的数据没法通过%s来进行字符串格式化,所以我在这里通过int来转换了一下,并用str转换了一下,后面再拼接上*,这个*的数量根据现在计算出来的比值来确定,就能够出来%3***这样的效果。自行使用上面的sys.stdout来实现一下这个直接print的效果。
打印进度条
import time
for i in range(20):
n=">"*i
print("\r%s" % n,end="") #\r的含义是从这个开始打印前面的全部抹掉,end="" 是取消掉print的自动换行
time.sleep(0.5)
posted @ 2018-10-23 15:25  admin9s  阅读(128)  评论(0编辑  收藏  举报