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

求助:Python读取CSV/TXT每行数据存入变量的实现方案

解决方案:读取IP列表并批量执行cURL请求

一、选择更易实现的文件格式:TXT

因为你的数据每行只有一个IP地址,纯TXT格式比CSV更简单,无需处理分隔符,直接逐行读取即可。如果用现有的CSV文件也可以兼容,下面分别给出两种格式的读取方法。

二、将IP存入一维数组

方法1:读取TXT文件(推荐)

初始化一个空数组,逐行读取文件内容并去除换行符后加入数组:

# 初始化空数组存储IP地址
ip_list = []

# 读取TXT文件
with open("lines.txt", "r") as file:
    for line in file:
        # 去除每行末尾的换行符和空白字符
        ip = line.strip()
        # 跳过空行(如果文件里有)
        if ip:
            ip_list.append(ip)

print(ip_list)
# 输出:['192.168.1.1', '192.168.1.2', ..., '192.168.1.7']

方法2:兼容现有CSV文件

如果继续用CSV文件,注意csv.reader会把每行内容包装成列表(比如['192.168.1.1']),需要提取列表中的第一个元素存入数组:

import csv

ip_list = []

with open("lines.csv") as csvFile:
    csvDATA = csv.reader(csvFile)
    for row in csvDATA:
        # 跳过空行
        if row:
            ip = row[0].strip()
            ip_list.append(ip)

print(ip_list)

三、批量执行cURL请求的简便实现

推荐用Python的requests库直接发送HTTP请求,比调用系统curl命令更简洁、易维护:

步骤1:安装requests库

pip install requests

步骤2:批量发送请求代码

import requests

# 假设你要请求的目标URL模板,可根据实际需求修改
url_template = "http://example.com/check?ip={}"

for ip in ip_list:
    try:
        response = requests.get(url_template.format(ip))
        # 处理响应,示例打印状态码和部分内容
        print(f"IP: {ip}, 状态码: {response.status_code}, 响应内容: {response.text[:50]}")
    except Exception as e:
        print(f"请求IP {ip} 失败: {str(e)}")

替代方案:调用系统curl命令

如果一定要用curl命令,可以用subprocess模块执行:

import subprocess

for ip in ip_list:
    # 构造curl命令,根据实际需求调整参数
    cmd = ["curl", f"http://example.com/check?ip={ip}"]
    try:
        result = subprocess.run(cmd, capture_output=True, text=True, check=True)
        print(f"IP: {ip}, 响应: {result.stdout[:50]}")
    except subprocess.CalledProcessError as e:
        print(f"IP {ip} 请求失败,错误: {e.stderr}")

注意事项

  • 使用with语句处理文件时,无需手动调用close(),Python会自动管理文件资源(你的原有代码中csvFile.close()是多余的)。
  • 读取文件时记得跳过空行,避免数组存入空字符串。
  • 批量请求时可加入time.sleep(1)这类延迟,避免对目标服务器造成过大压力。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 04:26:04