2012-02-23 2 views
1

Я работаю над простой игрой на Python, где компьютер пытается угадать номер, о котором вы думаете. Каждый раз, когда он догадывается о правильном ответе, он сохраняет ответ на txt-файл. Когда программа будет запущена снова, сначала будут угадываться старые ответы (если они указаны в диапазоне, указанном пользователем).Выберите случайную группу элементов из txt-файла

try: 
    f = open("OldGuesses.txt", "a") 
    r = open("OldGuesses.txt", "r") 
except IOError as e: 
    f = open("OldGuesses.txt", "w") 
    r = open("OldGuesses.txt", "r") 

data = r.read() 
number5 = random.choice(data) 
print number5 

Когда я запускаю это, чтобы вытащить старые ответы, он захватывает один элемент. Например, у меня есть числа 200, 1242 и 1343, а также пробелы, чтобы рассказать им обособленно, либо выберем пробел, либо одну цифру. Любая идея, как захватить полный номер (например, 200) и/или избежать выбора пробелов?

ответ

1

r.read() вызова читает всех содержимого r и возвращает его в виде одной строки. Что вы можете сделать, это использовать список понимание в сочетании с r.readlines(), как это:

data = [int(x) for x in r.readlines()] 

который разбивает файл на строки и преобразует каждую строку в целое число.

+0

Спасибо, btw, похоже, что он отлично работает: D Редактировать: Протестировано, его необходимо разрушить xP – asqapro

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