Лёша
Апрель 5, 2011 20:56:07
Здравствуйте, уважаемые знатоки. Помогите пожалуйста с такой задачей. Требуется скрипт, выбирающий в рандомном порядке слова из текстового файла. Длина выбранных слов должна быть > = 3 символа. Программа запрашивает требуемое количество слов и создаёт текстовый файл.
fth
Апрель 6, 2011 02:31:01
Создаёте сначала список подходящих слов прочитав входной файл, затем выбирая слова из него по случайному индексу пишете требуемое их количество в выходной файл.
Лёша
Апрель 6, 2011 15:40:16
Жаль только, что я не знаю, ка это сделать
ptax
Апрель 6, 2011 15:58:37
Лёша
Жаль только, что я не знаю, ка это сделать
import random
file_word = open(r'C:\slova.txt').read()
list_word = file_word.split('\n')
random_word = random.choice(list_word)
if len(random_word) >= 3:
print random_word
Лёша
Апрель 6, 2011 18:04:36
Скормил скрипту текстовый файл, но получается не то что нужно. Проблема в том, выводит случайные строки текста, а не отдельные слова в рандомном порядке
sp3
Апрель 6, 2011 21:08:45
list_word = file_word.split('\n')
замени на
list_word = file_word.split()
Лёша
Апрель 7, 2011 16:33:14
Спасибо всем ответившим. Как бы теперь сделать, чтобы можно было задавать количество сгенерированных слов, и записывать результат в текстовый файл. И чтобы слова не повторялись. Пожалуйста, помогите
agalen
Апрель 7, 2011 17:16:46
Этот код выводит 100 уникальных слов в файл result.txt
import random
file_word = open(r'C:\slova.txt','r').read()
words = set( x for x in file_word.split() if len( x ) >=3 )
out_file = open( 'result.txt', 'w' )
out_file.write( "\n".join( random.sample( words, 100 ) ) )
out_file.close()
Лёша
Апрель 7, 2011 21:30:09
Спасибо agalen! Как раз, то что нужно!