从包含空格的 python 执行命令行
Executing command line from python that contains spaces
我尝试使用软件 PTGui 自动执行来自 python 的图像拼接过程。
我可以执行以下在 windows 命令行中完美运行的命令:
C:\Users\mw4168> "C:\Program Files\PTGui\ptgui.exe" -batch "C:\Users\mw4168\OneDrive\Desktop\PTGui Tests rows\Panorama.pts
command screenshot here
但是,当我尝试在 Python 中使用 os.system 或 subprocess.run 执行此命令时:
import os
os.system("C:\Program Files\PTGui\ptgui.exe" + "-batch" +"C:\Users\mw4168\OneDrive\Desktop\PTGui Tests rows\panorama.pts")
我收到这个错误:
'C:\Program' 不是内部或外部命令,也不是可运行的程序或批处理文件。
error screenshot here
字符串中的空格似乎有问题...知道如何解决这个问题吗?
非常感谢,
保罗
问题是您可能(因为您没有发布任何代码)没有将 C:\Program Files\PTGui\ptgui.exe
作为字符串传递给终端,而只是一个简单的命令
使用
import os
os.system('\"C:\Program Files\PTGui\ptgui.exe\" -batch')
正如 os.system
文档已经告诉您的那样,更好的解决方案是改用 subprocess
。
subprocess.run([
r"C:\Program Files\PTGui\ptgui.exe",
"-batch",
r"C:\Users\mw4168\OneDrive\Desktop\PTGui Tests rows\panorama.pts"])
您创建的字符串在各个参数之间也缺少空格;但是让 Python 将参数传递给 OS 也可以让您更好地控制引用等
我尝试使用软件 PTGui 自动执行来自 python 的图像拼接过程。 我可以执行以下在 windows 命令行中完美运行的命令:
C:\Users\mw4168> "C:\Program Files\PTGui\ptgui.exe" -batch "C:\Users\mw4168\OneDrive\Desktop\PTGui Tests rows\Panorama.pts command screenshot here
但是,当我尝试在 Python 中使用 os.system 或 subprocess.run 执行此命令时:
import os
os.system("C:\Program Files\PTGui\ptgui.exe" + "-batch" +"C:\Users\mw4168\OneDrive\Desktop\PTGui Tests rows\panorama.pts")
我收到这个错误:
'C:\Program' 不是内部或外部命令,也不是可运行的程序或批处理文件。 error screenshot here
字符串中的空格似乎有问题...知道如何解决这个问题吗?
非常感谢,
保罗
问题是您可能(因为您没有发布任何代码)没有将 C:\Program Files\PTGui\ptgui.exe
作为字符串传递给终端,而只是一个简单的命令
使用
import os
os.system('\"C:\Program Files\PTGui\ptgui.exe\" -batch')
正如 os.system
文档已经告诉您的那样,更好的解决方案是改用 subprocess
。
subprocess.run([
r"C:\Program Files\PTGui\ptgui.exe",
"-batch",
r"C:\Users\mw4168\OneDrive\Desktop\PTGui Tests rows\panorama.pts"])
您创建的字符串在各个参数之间也缺少空格;但是让 Python 将参数传递给 OS 也可以让您更好地控制引用等