带变量的Python子进程调用

2024-10-01 11:24:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在为一个客户编写脚本。在

此脚本从配置文件读取。 其中一些信息存储在变量中。在

之后我想用subprocess.call执行装载命令 所以我使用这些变量来构建mount命令

call("mount -t cifs //%s/%s %s -o username=%s" % (shareServer, cifsShare, mountPoint, shareUser))

但这并不奏效

^{pr2}$

先建立命令

mountCommand = 'mount -t cifs //%s/%s %s -o username=%s' % (shareServer, cifsShare, mountPoint, shareUser)
call(mountCommand)

也会导致相同的错误。在


Tags: 命令脚本信息客户配置文件usernamecallsubprocess
1条回答
网友
1楼 · 发布于 2024-10-01 11:24:47

您当前的调用是为与shell=True一起使用而编写的,但实际上并没有使用它。如果真的想要使用需要用shell解析的字符串,请使用call(yourCommandString, shell=True)。在


更好的方法是使用shell=True传递显式参数列表,使命令行解析依赖于数据的详细信息,而传递显式列表则意味着您自己在做解析决策(作为一个了解所运行命令的人,您更适合这样做)。在

call(['mount',
      '-t', 'cifs',
      '//%s/%s' % (shareServer, cifsShare),
      mountPoint,
      '-o', 'username=%s' % shareUser])

相关问题 更多 >