大文本文件 随机取一定行 python csdn
时间: 2023-09-08 21:02:45 浏览: 169
易语言大文本文件随机读取一行内容源码
在Python中,我们可以使用以下的代码将大文本文件中的随机行提取出来。
首先,我们需要导入`random`模块来生成随机数,并使用`linecache`模块来读取文本文件的特定行。
然后,我们可以使用以下的代码来实现这个功能:
```python
import random
import linecache
def random_lines(file_path, num_lines):
# 获取文本文件的总行数
total_lines = sum(1 for line in open(file_path))
# 随机选择指定数量的行号
random_lines = random.sample(range(1, total_lines+1), num_lines)
result = []
# 逐行读取文本文件,将随机选择的行存入结果列表
for line_number in random_lines:
line = linecache.getline(file_path, line_number)
result.append(line.strip())
return result
# 示例用法
file_path = "example.txt" # 大文本文件的路径
num_lines = 5 # 需要提取的随机行的数量
random_lines = random_lines(file_path, num_lines)
for line in random_lines:
print(line)
```
在这个示例中,我们假设大文本文件的路径为"example.txt",我们想要提取5行随机行。代码首先会计算文件的行数,然后在1到总行数之间生成不重复的随机行号。之后,代码会使用`linecache.getline()`函数读取相应行的内容,并将其存入结果列表`result`中。最后,我们可以遍历结果列表,并打印输出随机行。
注意:假如大文本文件特别大,同时需要随机提取多行,上述代码可能会遇到效率问题。在这种情况下,最好的解决方案是在读取文本文件时,只保留随机行的行号,并跳过其他行的读取。这样可以避免不必要的内存开销和读取时间。
阅读全文