[英]Storing output of os.system() in a variable
我正在为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(这很可能是该命令在圆括号中的退出状态)。 如何将单词存储在变量中?
不要从Python调用shell命令。 您可以使用Shell命令执行的所有Python操作。 最好以纯Python或纯Bash来实现。
您的任务的简单实现是将/usr/share/dict/words
的全部内容读入列表,然后使用random
模块random
选择一个项目。 该解决方案的优点是它仅扫描文件内容一次。 它的缺点是读取内存中的内容。 (由于小于1MB,因此在现代系统上应该忽略不计。)
如果要在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'
官方文档在这里 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.