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
 
打印進度條
1、
    import sys
    import time
    for i in range(50):
        sys.stdout.write('>')
        sys.stdout.flush()
        time.sleep(0.2)
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 timefor i in range(20):    n=">"*i    print("\r%s" % n,end="")  #\r的含義是從這個開始打印前面的所有抹掉,end=""  是取消掉print的自動換行    time.sleep(0.5)
相關文章
相關標籤/搜索