Python打印及写入curl命令时末尾出现省略号截断问题求助
问题核心原因
你遇到的截断问题和缓冲区、切片逻辑无关,本质是遍历行的逻辑存在取值错误:你在循环中直接读取了整个列的Series对象,而非当前行的对应字段值。pandas的Series在转换为字符串时,如果内容过长会自动截断并在末尾补充...,就是你看到的输出效果。
具体错误点
df.iterrows()返回的row是元组,第二个元素才是当前行的Series对象,你代码中直接用df.COLA、df.COLB的写法,等于每次拼接的是整个COLA、COLB列的全部值,不是当前行的字段值。- 你代码注释标注要把空格替换为%20,但没有做对应的转义处理,直接拼接会导致URL格式错误。
- 你已经使用
with上下文管理器管理文件对象,不需要再手动调用file.close(),上下文退出时会自动关闭文件。
修复后代码
import pandas as pd import urllib.parse header_list = ["COLA", "COLB"] df = pd.read_csv("curl_data.csv", names=header_list) with open("output.txt", "w") as file: # 若要遍历所有行就删除后续break即可 for _, row in df.iterrows(): base_url = "https://examplesite" # 取当前行对应字段值 lic = row["COLA"] name = row["COLB"] group = "example group" # 自动对参数做URL编码,空格自动转成%20 params = urllib.parse.urlencode({ "license": lic, "name": name, "group": group }) full_url = f'"{base_url}?{params}"' command = f"curl {full_url}" print(command) file.write(command + "\n") # 仅保留第一行输出的判断 break
内容的提问来源于stack exchange,提问作者swmyhill
相关产品推荐
相关产品推荐

