Python 从文件中获取多个随机行

Python Get Multiple Random Lines From File

谁能帮我快速解决这个问题?这是我正在使用的代码:

# Lists:
anchorslist = []

#Files:
anchors = open(basepath + "anchors.txt", "r")

#Placed In List:
for line in anchors:
        anchorslist.append(line.replace("\n", "|"))

#Used:
type(anchorslist)

它将 return 来自我的文本文件的随机行。我想要实现的是让我们说 10 条随机线 returned 像这样:

random_anchor1|random_anchor2|random_anchor3|random_anchor4

我随机使用这个。

def type(name):
    value = name[random.randint(0,len(name)-1)]
    return value

我要如何修改代码才能return呢?谢谢

 '|'.join(random.sample(anchorlist,10))

random.sample(anchorlist,10) return 来自anchorlist的10个随机元素

'|'.join(...) 使用 | 作为分隔符连接列表

您要使用的是 random python 模块。这样,您可以使用 random.choice(anchorlist) 到 select 列表中的随机行。下面是一些可以实现这一点的代码:

import random
# Lists:
anchorslist = []

#Files:
anchors = open("anchors.txt", "r")

#Placed In List:
for line in anchors:
        anchorslist.append(line.replace("\n", "|"))

anchors.close()

rand_options = anchorslist  # duplicate list, better than editting the input list
rand_vals = []
length = 3  # configure to 10, or how ever many random lines you want

for _ in range(length):
    rand_val = random.choice(rand_options)
    rand_vals.append(rand_val)    
    rand_options.remove(rand_val)  # remove from list so you don't get duplicates (unless you don't mind those)

what_you_want = "".join(rand_vals).rstrip("|")

说 anchors.txt = "Hello \n I \n am \n some \n random \n stuff", what_you_want = "I|stuff|Hello"