我为Hangman游戏生成一个随机单词,因此想生成一个随机单词。
我正在使用/usr/share/dict/words
文件并执行以下操作:
def word_select():
import os
word = os.system('head -$((${RANDOM} % `wc -l < /usr/share/dict/words` + 1)) /usr/share/dict/words | tail -1')
return word
但是当我检查word的值时,它的值为0(这很可能是圆括号中命令的退出状态)。如何在变量中存储单词?
答案 0 :(得分:4)
不要从Python调用shell命令。 您可以在Python中执行shell命令可以执行的所有操作。 在纯Python或纯Bash中实现它会更好。
您的任务的简单实现是将/usr/share/dict/words
的全部内容读入列表,然后使用random
模块随机选择项目。
此解决方案的优点是它只扫描文件内容一次。它的缺点是读取内存中的内容。 (因为它不到1MB,对现代系统来说应该是一个可以忽略不计的问题。)
答案 1 :(得分:2)
如果您想在Python中执行此操作,请改用subprocess
模块。
类似的东西:
Python 3.5.3 (default, Jan 19 2017, 14:11:04)
[GCC 6.3.0 20170118] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import subprocess
>>> myVariable = subprocess.check_output(["uptime"])
>>> myVariable
b' 20:48:53 up 42 min, 1 user, load average: 0,21, 0,26, 0,26\n'
官方文档here。