我想在Python脚本中包含一个创建7zip存档的命令。因为我在Windows上工作,所以我需要将命令传递给powershell控制台。我计划用os.system
来做(我知道这不是最好的方法,我应该使用subprocess
,但我真的只需要一个快速修复,在这种情况下学习使用新模块对我来说不是时间有效的)。如果从powershell控制台
&'C:\Program Files\7-Zip\7z' a -mx=0 X:/myarch.zip X:/myarch
所以我在python中重新创建相同的字符串,像这样:
cmdl = r"&'C:\Program Files\7-Zip\7z' a -mx=0 X:/myarch.zip X:/myarch"
字符串解释如下:
"&'C:\\Program Files\\7-Zip\\7z' a -mx=0 X:/myarch.zip X:/myarch"
现在,如果我在powershell控制台中复制粘贴上述字符串,它将正常运行。但是,如果我在python中使用os.system(cmdl)
运行它,我得到以下错误
"The filename, directory name, or volume label syntax is incorrect"
为什么会出现这种情况?我该如何解决这个问题?
os.system
意味着执行cmd命令,cmd命令可以在powershell中运行,也许毕竟powershell有点先进,但我确信你不能在powershell中运行cmd命令,因此你的代码不工作。
os.startfile()
(使用此代码:os.startfile("script.ps")
)运行它