在windows上使用python执行程序

2024-04-29 05:14:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉windows python。我正在尝试使用python运行命令行工具。此工具将刷新连接到机器IP地址的固件。我可以打开命令提示符并使用命令

C:\ToolsSuite>;sdi--ip 172.23.240.41--fwdl“C:\BUILDS\firmware_图片.zip 这对我很有效。你知道吗

但是当我尝试在windows上使用python脚本执行时,我无法做到这一点。Python脚本如下所示。你知道吗

import subprocess
import os

os.chdir(r"C:\ToolsSuite")
#os.system('cd c:\mydir')
os.system("sdi --ip 192.92.48.32 --fwdl C:\firmware_image.zip")

#subprocess.Popen(r'sdi --ip 192.92.48.32 --fwdl "c:\firmware_image.zip"', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

引发的异常是“找不到文件”。我不知道如何给固件文件的路径时,它存储在某些位置,例如'C'驱动器或在某些文件夹位置的windows。你知道吗


Tags: 工具imageimportip脚本oswindowszip
2条回答

如果sdi可执行文件位于“C:\ToolsSite”中,则应该可以:

subprocess.call(['sdi', ' ip 192.92.48.32', r' fwdl "c:\firmware_image.zip"'])

如果要调用Windows命令,需要给出该命令的完整路径。你知道吗

您可以尝试:

import subprocess    
import os.path

# C:\ToolsSuite>sdi  ip 172.23.240.41  fwdl "c:\BUILDS\firmware_image.zip"
cmd = os.path.join("C:\\ToolsSuite", "sdi")
args = [cmd,
        ' ip', '172.23.240.41',
        ' fwdl', 'c:\\BUILDS\\firmware_image.zip']
subprocess.check_call(args)

在这里,check_call用异常替换非零退出代码很有用。当然,您也可以选择相同family的另一个函数。你知道吗

相关问题 更多 >