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

使用Python3.x分批读取XLSX每100行并写入TXT文件

分批处理XLSX中的URL到TXT文件

核心思路

用itertools.islice按批次截取工作表行数据,每100行作为一批写入独立TXT文件;循环执行直到所有行处理完毕,自动适配最后一批不足100行的情况。

完整实现代码

from openpyxl import load_workbook
from itertools import islice

def batch_process_xlsx_urls(xlsx_path, batch_size=100):
    # 只读模式加载工作簿,优化大文件处理性能
    wb = load_workbook(xlsx_path, read_only=True)
    ws = wb.active  # 获取默认第一个工作表
    
    # 转换行数据为迭代器,假设第一行是表头,无表头则删除next(rows)
    rows = iter(ws.iter_rows(values_only=True))
    next(rows)  # 跳过表头行
    
    batch_num = 1
    while True:
        # 截取当前批次的行,最多取batch_size条
        batch = list(islice(rows, batch_size))
        if not batch:
            break  # 无数据时退出循环
        
        # 提取URL(假设URL在第一列,非第一列则修改row[0]为对应索引)
        url_list = [row[0] for row in batch if row[0] is not None]
        
        # 写入TXT,每行一个URL
        with open(f"url_batch_{batch_num}.txt", "w", encoding="utf-8") as f:
            f.write("\n".join(url_list))
        
        print(f"完成第{batch_num}批处理,共{len(url_list)}条URL")
        batch_num += 1

# 调用示例,替换为你的XLSX文件路径
if __name__ == "__main__":
    batch_process_xlsx_urls("your_url_file.xlsx")

关键细节说明

  • islice的作用:每次从行迭代器中截取指定数量的行,迭代器会自动向后移动,不会重复读取数据,刚好适配分批需求。
  • 空值过滤:代码中跳过了空的URL行,避免TXT中出现空行。
  • 文件命名:用批次号区分输出文件,方便后续批量处理或查看。

调整提示

  • 若XLSX无表头,删除next(rows)这一行。
  • 若URL不在第一列,把row[0]改成对应列的索引(比如第二列写row[1])。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 15:36:08