2013-04-05 101 views
0

自己弄清楚這件事本來是非常令人欣慰的,但我一直沒能做到。如何從python中的文件獲得隨機值?

我想抓住從包含在字典例如表單數據的文本文件的隨機值:

{'One': '1111111', 'Two': '2222222', 'Three': '3333333'} 

我已經嘗試了一些變化,但代碼是目前:

from random import * 

table = open('file.txt') 
random_value = random.choice(table.values()) 

當我嘗試和打印 'random_value'(看它是否工作),我得到的錯誤:

AttributeError: 'file' object has no attribute 'values' 

回答

1

table是一個文件對象,因此你想把它變成一個字典。這裏我使用ast模塊:

from random import choice # No need to import everything if you're going to use just one function 
import ast 
table = open('file.txt').read() 
mydict = ast.literal_eval(table) 
random_value = choice(mydict.values()) 
+0

非常感謝你,當我嘗試打印random_value時出現'格式錯誤的字符串'錯誤。 – user1063287 2013-04-05 07:58:12

+0

'table'仍然是一個文件對象...並且您需要將'random.choice'更改爲'choice' – Jared 2013-04-05 08:00:59

+0

@ user1063287這意味着在file.txt中,該字典不是正確的語法。此外,我編輯了我的問題,因爲我不小心改變了一些東西使其不正確。立即試用 – TerryA 2013-04-05 08:01:32