使用python在cmd中传递变量

时间:2015-08-22 01:36:26

标签: python python-2.7 cmd subprocess

我想在命令提示符中传递一些变量以及其他一些文本。我尝试使用此代码,但它无法正常工作。任何提示我可能做错了什么或者我应该做什么呢?

有一个变量" v"它存储了一个URL,我想在cmd中使用其他一些参数传递这个URL。我现在有了这个代码。

working_directory = os.getcwd()
p = subprocess.Popen(['ffmpeg -i 'v' -c copy getit.mkv'], cwd=working_directory)
p.wait()

但是,似乎这不起作用。我无法通过变量" V"。它只是在我删除引号时粘贴V

2 个答案:

答案 0 :(得分:2)

要将变量传递给字符串,您可以使用format的{​​{1}}方法:

string

答案 1 :(得分:2)

将命令作为如下列表传递:

working_directory = os.getcwd()
p = subprocess.Popen(['ffmpeg', '-i', v, '-c' 'copy' 'getit.mkv'], cwd=working_directory)
p.wait()

或者使用shlex.split()来正确处理这个问题:

cmd = 'ffmpeg -i "{}" -c copy getit.mkv'.format(v)
p = subprocess.Popen(shlex.split(cmd), cwd=working_directory)