我正在学习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>
它可以正常工作并立即打开目标文件,
我注意到[]
的第一个选项比后面的“字符串”选项更可取。
[]
选项无法打开文件是什么问题?
答案 0 :(得分:1)
来自subprocess.Popen
构造函数(Docs):
shell参数(默认为False)指定是否使用shell作为要执行的程序。如果shell为True,建议将args作为字符串而不是序列传递。