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

如何获取从文本文件中随机选取的行对应的行号?

解决方法

你可以用enumerate()函数在读取文件时直接为每一行绑定行号(从1开始计数),再随机选取带行号的行数据,这样就能同时拿到行号和内容:

import random

# 用with语句安全读取文件,自动关闭文件句柄
with open('my_file.txt', 'r', encoding='utf-8') as file:
    # enumerate的start参数设为1,让行号从1开始
    numbered_lines = list(enumerate(file, start=1))

# 随机选取一个带行号的行(返回的是(行号, 内容)的元组)
line_num, random_line = random.choice(numbered_lines)

print(f"行号:{line_num},内容:{random_line}")

说明

  • enumerate(file, start=1)会遍历文件的每一行,同时为每行分配一个从1开始递增的行号,返回的是形如(行号, 行内容)的元组。
  • 用with语句处理文件是更规范的写法,避免忘记关闭文件导致资源泄漏。
  • 如果你的文件中存在重复内容,这种方法能准确返回随机选中的那一行的真实行号;而如果用lines.index(random_line) + 1的方式,只会返回第一个匹配内容的行号,存在误差。

比如运行后选中Suits时,会输出:行号:3,内容:Suits,完全符合你的示例要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 15:03:51