如何从 Python 执行程序
Python 提供了一种使用 os.system() 函数执行外部程序的便捷方法。但是,当程序的路径包含空格时,此函数可能会失败。
解决方案:使用 subprocess.call()
subprocess.call() 函数是一个os.system() 的替代方案,避免引用路径中空格引起的问题。它采用参数列表而不是单个字符串,从而简化了参数分隔。
<code class="python">import subprocess subprocess.call(['C:\Temp\a b c\Notepad.exe', 'C:\test.txt'])</code>
在此示例中,Notepad.exe 将使用参数 C:\test.txt 执行。 subprocess.call() 函数将等待程序完成。
其他选项
1.转义空格
将路径用双引号引起来可以转义空格。但是,当添加多个参数时,此方法会变得很麻烦。
<code class="python">os.system('"C:\Temp\a b c\Notepad.exe" "C:\test.txt"')</code>
2.将 Shell=True 与 os.system()
设置 shell=True 允许操作系统的命令解释器处理引用约定。然而,这种方法存在安全风险。
<code class="python">os.system("C:\Temp\a b c\Notepad.exe C:\test.txt", shell=True)</code>
结论
当路径包含时,subprocess.call() 是从 Python 执行程序的首选方法空间。它提供了一个简单且安全的解决方案。
以上是如何从Python执行路径中有空格的程序?的详细内容。更多信息请关注PHP中文网其他相关文章!