subprocess.Popen([“ open”,“ target.mkv”],shell =打开文件失败

时间:2018-08-30 04:13:27

标签: python subprocess popen

我正在学习subprocess打开多媒体“ .mkv”文件,

首先,我测试:

In [25]: subprocess.Popen(
    ...:     ["open", "/Volumes/Transcend/Downloads/The.Adventure.of.English.Ep4.mkv"], shell=True)
    ...:     
Out[25]: <subprocess.Popen at 0x10b063908>
In [26]: Usage: open [-e] [-t] [-f] [-W] [-R] [-n] [-g] [-h] [-s <partial SDK name>][-b <bundle identifier>] [-a <application>] [filenames] [--args arguments]

发生的只是提示用法消息。

然后,我尝试了:

In [27]: subprocess.Popen('open "/Volumes/Transcend/Downloads/The.Adventure.of.English.Ep4.mkv"', shell=True)
Out[27]: <subprocess.Popen at 0x10b114208>

它可以正常工作并立即打开目标文件,

我注意到[]的第一个选项比后面的“字符串”选项更可取。

[]选项无法打开文件是什么问题?

1 个答案:

答案 0 :(得分:1)

来自subprocess.Popen构造函数(Docs):

  

shell参数(默认为False)指定是否使用shell作为要执行的程序。如果shell为True,建议将args作为字符串而不是序列传递。