2015-04-24 4 views
-1

Может ли кто-нибудь помочь мне с этой реальной быстро? Вот мой код, который я использую:Python Получить несколько случайных строк из файла

# Lists: 
anchorslist = [] 

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

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

#Used: 
type(anchorslist) 

Он вернет случайную строку из моего текстового файла. То, что я хочу достичь, это получить, скажем, 10 случайных строк, возвращаемых следующим образом:

random_anchor1|random_anchor2|random_anchor3|random_anchor4 

Я использую это для случайного.

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

Как мне изменить код, чтобы вернуть его? Благодарю.

+0

Почему ваш текущий код возвращает случайную строку? Где вы делаете это случайным или возвращаете строку? –

+0

Добавил это выше. – Matt

ответ

1

то, что вы хотите использовать модуль random питона. При этом вы можете использовать random.choice(anchorlist), чтобы выбрать случайную строку из списка. Вот код, который бы добиться того, что:

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("|") 

Say anchors.txt = "Hello \ п I \ п ат \ п некоторые \ п случайных \ п вещи", what_you_want = "Я | материал | Привет"

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

random.sample(anchorlist,10) возвращение 10 случайных элементов из anchorlist

'|'.join(...) сцепить список, используя в качестве разделителя |

Смежные вопросы