给定一个文件,在不知道文件总行数的情况下,如何从文件中随机抽取若干行
时间: 2024-09-11 07:18:59 浏览: 82
在不知道文件总行数的情况下,可以使用Python中的`random`模块配合循环来从文件中随机抽取若干行。这里是一个简单的示例:
```python
import random
def read_random_lines(filename, num_lines):
# 打开文件并读取每一行,直到达到所需行数或者文件结束
lines = []
with open(filename, 'r') as file:
while len(lines) < num_lines and not file.readline() == '':
lines.append(file.readline())
# 随机选择num_lines行并返回
if len(lines) >= num_lines:
return [random.choice(lines) for _ in range(num_lines)]
else:
print(f"警告:文件中的行数不足{num_lines},只能抽到所有行。")
return lines
# 调用函数并指定文件名和需要抽取的行数
selected_lines = read_random_lines('your_file.txt', 5)
```
在这个例子中,我们打开文件并逐行读取,直到达到用户指定的行数或文件结束。然后,如果剩余行数大于等于需要的数量,我们会随机选择指定数量的行;否则,返回全部已读取的行。
阅读全文