我是python的新手,我需要在os.system
命令中使用变量,这里是我的代码到目前为止
import os , sys
s = raw_input('test>')
然后我想在s
命令中使用varable os.system
,所以我想的是os.system("shutdown -s -t 10 -c" 's')
我不想要一般我想知道的特定命令的答案,但如果你打算使用一个例子,请使用shutdown
答案 0 :(得分:3)
答案 1 :(得分:3)
您可以使用os.system
执行特定命令,在这种情况下,您可以使用+
运算符,字符串格式(.format()
),字符串替换或字符串替换来连接两个字符串其他方法。
但是,请考虑用户输入命令5; rm -rf /
或其他malicious命令的情况。您可能希望查看subprocess
os.system
如果您使用子流程,您可能会发现以下示例方便:
import subprocess
s = raw_input('test>')
subprocess.call(["shutdown", "-s", "-t", "10", "-c", s])
答案 2 :(得分:1)
os.system
将字符串作为参数,因此您可以使用修改字符串的任何内容。例如,string formatting:
os.system('shutdown -s -t 10 -c {0}'.format(s))
答案 3 :(得分:1)
使用subprocess.check_call,传递一个args列表,您可以随意添加变量:
from subprocess import check_call
check_call(["shutdown", some_var ,"-s", "-t" "10", "-c"])
答案 4 :(得分:0)
传递占位符"%s字符串以及os.system" 应该有效。
os.system()将在shell中执行命令。
import os
var = raw_input('test>') # changed "s" variable to "var" to keep clean
os.system("shutdown -%s -t 10 -c", %(var)) # "var" will be passed to %s place holder
答案 5 :(得分:-1)
os.system("shutdown -s -t 10 -c" + s)
s
周围没有引号。这样您就可以获得用户输入的值,而不仅仅是文字" s"。