You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 05:36:04