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

Python读取txt拼接API URL发请求仅首行生效问题求助

问题根源

你的代码存在4处核心逻辑错误,直接导致仅能处理第一行内容:

  • 遍历文件对象for line in f本身已经是逐行读取的实现,循环内部额外调用f.readlines()会一次性读取文件剩余的全部内容,直接打乱逐行迭代的流程。
  • 循环内执行f=line.rstrip("\t")会把原本存储文件句柄的变量f覆盖为字符串,下一次循环迭代时f已经不是可读取的文件对象,无法继续获取后续行内容。
  • URL拼接、API请求、结果打印的逻辑全部写在了文件读取循环的外部,等循环结束后才会执行,只会用循环最终留存的f值发起一次请求,完全不会逐行触发请求流程。
  • rstrip("\t")仅会移除行尾的制表符,文本文件每行默认末尾带有换行符\n,不清理的话拼接进URL会导致请求地址异常。
修正后代码
import requests

# 固定URL前缀
BASE_URL = '[url here]'

with open("words.txt", "r", encoding="utf-8") as f:
    for line in f:
        # 移除行首尾所有空白字符(换行、制表符、多余空格)
        word = line.strip()
        # 跳过空行,避免发起无效请求
        if not word:
            continue
        # 拼接完整请求地址
        url = BASE_URL + word
        resp = requests.get(url)
        # 打印请求标识和返回结果,方便调试
        print(f"当前请求单词:{word},响应状态码:{resp.status_code}")
        print(resp.json())
补充说明
  • 原代码中import json属于无用导入,requests库的响应对象自带.json()方法可直接解析JSON格式的返回值,无需额外导入json模块。
  • 打开文件时指定encoding="utf-8"可以避免Windows系统下默认使用GBK编码读取文件触发的编码报错。
  • 你后续要实现的结果写入文件逻辑,直接放在每次请求拿到resp.json()之后处理即可,不需要改动现有逐行循环的结构。

内容的提问来源于stack exchange,提问作者user19253035

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 07:03:32