需要在python中的os.system命令中使用变量

时间:2015-08-17 09:39:21

标签: python os.system

我是python的新手,我需要在os.system命令中使用变量,这里是我的代码到目前为止

import os , sys
s = raw_input('test>')

然后我想在s命令中使用varable os.system,所以我想的是os.system("shutdown -s -t 10 -c" 's')

我不想要一般我想知道的特定命令的答案,但如果你打算使用一个例子,请使用shutdown

6 个答案:

答案 0 :(得分:3)

  

然后我想在os.system

中使用varable

使用string.format功能。

os.system("shutdown -s -t 10 -c {}".format(s))

答案 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)
  1. 加号加入两个字符串
  2. s周围没有引号。这样您就可以获得用户输入的值,而不仅仅是文字" s"。