从Python中的文件中读取一些随机行

Mri*_*lla 7 python

有人能告诉我如何从Python中的文件中读取随机数行吗?

Sim*_*onJ 16

你的要求有点模糊,所以这里有另一种略有不同的方法(如果没有别的话可以获得灵感):

from random import random
lines = [line for line in open("/some/file") if random() >= .5]
Run Code Online (Sandbox Code Playgroud)

与其他解决方案相比,线的数量变化较小(分布在总线数的一半左右),但每条线的概率为50%,并且只需要通过文件一次.

  • `random.random() > .5` 在这里有什么意义? (2认同)

Dav*_*ebb 15

要从文件中随机获取多行,您可以执行以下操作:

import random
with open('file.txt') as f:
    lines = random.sample(f.readlines(),5)
Run Code Online (Sandbox Code Playgroud)

上面的示例返回5行,但您可以轻松地将其更改为您需要的数字.randint()除了大量随机行之外,您还可以将其更改为获得随机数行,但您必须确保样本大小不大于文件中的行数.根据您的输入,这可能是微不足道的或稍微复杂一点.

请注意,这些行可能会以lines不同的顺序显示在文件中.