我试图使用subprocess.call
运行PowerShell脚本,但运气不太好。在
subprocess.call(['.\ConvertPPTtoImage.ps1', path+'file.pptx'])
直接从PowerShell运行.\ConvertPPTtoImage.ps1 file.pptx
可以很好地工作,但是上面的行只是在记事本中打开ConvertPPTtoImage.ps1
。我尝试过其他变体(从一开始就删除.\
,删除{WindowsError: [Error 193] %1 is not a valid Win32 application
正确的方法是什么?在
主要在linux机器上工作,这是我最好的猜测。听起来
ConvertPPTtoImage.ps1
是一个脚本,然后由powershell运行。该命令试图运行它:(a)使用ps1
文件的默认程序,该程序将在记事本中打开它;或者(b)作为自身的可执行文件运行,但由于文本文件本身不是可执行文件而失败。解决方案是替换如下调用。在也就是说,用参数调用powershell,告诉它要运行哪个脚本。在
另外,每当在python中使用Windows路径时,我建议在每个字符串的开头加一个r,这会告诉python忽略转义序列。由于python的转义字符和窗口的路径分隔符都是反斜杠,这就省去了很多麻烦。在
您需要调用PowerShell可执行文件本身。默认情况下,Windows将在记事本或您选择的其他文本编辑器中打开
.ps1
文件。作为一种安全特性,它们在默认情况下不使用PowerShell运行。在相关问题 更多 >
编程相关推荐