如何在Python使用socket读取网络文件时限制print输出最多3000个字符
你可以新增字符计数逻辑实现打印长度限制,修改后代码如下:
import socket # 定义最大打印字符数 MAX_PRINT_LENGTH = 3000 # 累计已打印字符数 printed_count = 0 mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) userurl = input("Enter a URL: ") lst = userurl.split('/') host = lst[2] print(host) try: mysock.connect((host, 80)) except: print("Invalid URL") exit() cmd = f'GET {userurl} HTTP/1.0\r\n\r\n'.encode() mysock.send(cmd) while True: data = mysock.recv(512) if len(data) < 1: break decoded_str = data.decode() remaining = MAX_PRINT_LENGTH - printed_count if remaining <= 0: # 已达到打印上限,直接终止接收 break # 仅打印剩余允许长度内的字符 print_content = decoded_str[:remaining] print(print_content, end='') printed_count += len(print_content) mysock.close()
核心改动逻辑:
- 新增
MAX_PRINT_LENGTH常量统一配置打印长度上限,新增printed_count变量累计已打印的字符数量 - 每次接收到数据解码后,先计算剩余可打印字符长度,若已达上限直接终止接收循环,避免多余的资源消耗
- 每次仅截取剩余允许长度内的字符打印,更新累计计数后进入下一轮循环
内容的提问来源于stack exchange,提问作者Salman_Same7
相关产品推荐
相关产品推荐

