【问题标题】:passing more than one variables to os.system in python [duplicate]在python中将多个变量传递给os.system [重复]
【发布时间】:2014-04-01 20:30:56
【问题描述】:

我想将两个变量传递给 os.system(),例如在特定目录中以不同格式列出文件,例如 (ls -l testdirectory),其中开关和测试目录都是可变的。 我知道这对于单个变量有效:

option=l os.sytem('ls -%s' option)

但我不知道如何传递两个变量?

【问题讨论】:

  • 你不应该用os.system()开头;使用更灵活(更安全)的subprocess 模块。 (你的例子一开始也不行……)
  • @Wooble meh 从技术上讲是你的权利......我仍然经常使用 os.system 虽然也......如果这就是你所需要的并且你肯定控制输入它只是简单......
  • @Wooble 我看不到任何文档here 表明使用 os.system 存在安全问题。你能详细说明一下吗?
  • @codaamok 参见例如Actual meaning of shell=True in subprocess 但它也在 os.system 文档中被大量提及,同时建议更喜欢 subprocess 模块。

标签: python os.system


【解决方案1】:

您在询问字符串格式(因为 os.system 接受字符串,而不是参数列表)

cmd = "ls -{0} -{1}".format(var1,var2)
#or cmd = "{0} -{1} -{2}".format("ls","l","a")
os.system(cmd)

cmd = "ls -%s -%s"%(var1,var2)

cmd = "ls -"+var1+" -"+var2

【讨论】:

    【解决方案2】:

    例如,这有效:

    os.system('%s %s' % ('ls', '-l'))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-02
      • 2014-02-24
      • 1970-01-01
      • 1970-01-01
      • 2018-04-21
      相关资源
      最近更新 更多