找回密码
 会员注册
查看: 25|回复: 0

python10种方式运行cmd命令并获得返回值的高级技巧

[复制链接]

2万

主题

0

回帖

6万

积分

超级版主

积分
65944
发表于 2024-9-4 17:49:58 | 显示全部楼层 |阅读模式
python10种方式运行cmd命令的高级技巧importsubprocess#方法1:使用subprocess模块的run函数defrun_cmd_1(command):"""运行CMD命令并返回输出结果参数:command(str):要执行的CMD命令返回:output(str):命令执行的输出结果"""try:result=subprocess.run(command,shell=True,capture_output=True,text=True)ifresult.returncode==0utput=result.stdout.strip()elseutput=result.stderr.strip()exceptExceptionaseutput=str(e)returnoutput#方法2:使用subprocess模块的check_output函数defrun_cmd_2(command):"""运行CMD命令并返回输出结果参数:command(str):要执行的CMD命令返回:output(str):命令执行的输出结果"""tryutput=subprocess.check_output(command,shell=True,text=True)output=output.strip()exceptExceptionaseutput=str(e)returnoutput#方法3:使用os模块的system函数defrun_cmd_3(command):"""运行CMD命令并返回输出结果参数:command(str):要执行的CMD命令返回:output(str):命令执行的输出结果"""try:result=os.system(command)output=""ifresult==0utput="命令执行成功"elseutput="命令执行失败"exceptExceptionaseutput=str(e)returnoutput#方法4:使用os模块的popen函数defrun_cmd_4(command):"""运行CMD命令并返回输出结果参数:command(str):要执行的CMD命令返回:output(str):命令执行的输出结果"""tryutput=os.popen(command).read()output=output.strip()exceptExceptionaseutput=str(e)returnoutput#方法5:使用commands模块的getoutput函数defrun_cmd_5(command):"""运行CMD命令并返回输出结果参数:command(str):要执行的CMD命令返回:output(str):命令执行的输出结果"""try:output=commands.getoutput(command)output=output.strip()exceptExceptionase:output=str(e)returnoutput#方法6:使用commands模块的getstatusoutput函数defrun_cmd_6(command):"""运行CMD命令并返回输出结果参数:command(str):要执行的CMD命令返回:output(str):命令执行的输出结果"""try:status,output=commands.getstatusoutput(command)output=output.strip()exceptExceptionase:output=str(e)returnoutput#方法7:使用os模块的startfile函数defrun_cmd_7(command):"""运行CMD命令并返回输出结果参数:command(str):要执行的CMD命令返回:output(str):命令执行的输出结果"""try:os.startfile(command)output="命令已启动"exceptExceptionase:output=str(e)returnoutput#方法8:使用os模块的spawn函数defrun_cmd_8(command):"""运行CMD命令并返回输出结果参数:command(str):要执行的CMD命令返回:output(str):命令执行的输出结果"""try:output=os.spawnl(os.P_WAIT,'cmd.exe','/c',command)output=output.strip()exceptExceptionase:output=str(e)returnoutput#方法9:使用win32api模块的ShellExecute函数defrun_cmd_9(command):"""运行CMD命令并返回输出结果参数:command(str):要执行的CMD命令返回:output(str):命令执行的输出结果"""try:win32api.ShellExecute(0,'open','cmd.exe','/c{}'.format(command),'',0)output="命令已启动"exceptExceptionase:output=str(e)returnoutput#方法10:使用win32api模块的CreateProcess函数defrun_cmd_10(command):"""运行CMD命令并返回输出结果参数:command(str):要执行的CMD命令返回:output(str):命令执行的输出结果"""try:si=win32process.STARTUPINFO()si.dwFlags|=win32process.STARTF_USESHOWWINDOWoutput=win32api.CreateProcess(None,command,None,None,False,0,None,None,si)[1].read()output=output.strip()exceptExceptionase:output=str(e)returnoutput#示例:运行ipconfig命令获取网络配置信息output=run_cmd_1('ipconfig')print(output)'运行运行python12种方式运行cmd命令并获得返回值的高级技巧importsubprocessimportosimportcommandsimportwin32apiimportwin32process#方法1:使用subprocess模块的run函数,返回CompletedProcess对象defrun_cmd_1(command):"""运行CMD命令并返回CompletedProcess对象参数:command(str):要执行的CMD命令返回:result(CompletedProcess):命令执行的结果对象"""try:result=subprocess.run(command,shell=True,capture_output=True,text=True)exceptExceptionase:result=str(e)returnresult#方法2:使用subprocess模块的check_output函数,返回命令的输出结果defrun_cmd_2(command):"""运行CMD命令并返回输出结果参数:command(str):要执行的CMD命令返回:output(bytes):命令执行的输出结果"""try:output=subprocess.check_output(command,shell=True)exceptExceptionase:output=str(e)returnoutput#方法3:使用subprocess模块的call函数,返回命令的返回码defrun_cmd_3(command):"""运行CMD命令并返回返回码参数:command(str):要执行的CMD命令返回:returncode(int):命令的返回码"""try:returncode=subprocess.call(command,shell=True)exceptExceptionase:returncode=str(e)returnreturncode#方法4:使用subprocess模块的Popen函数,返回Popen对象defrun_cmd_4(command):"""运行CMD命令并返回Popen对象参数:command(str):要执行的CMD命令返回:process(Popen)open对象"""try:process=subprocess.Popen(command,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)exceptExceptionase:process=str(e)returnprocess#方法5:使用os模块的system函数,返回命令的返回码defrun_cmd_5(command):"""运行CMD命令并返回返回码参数:command(str):要执行的CMD命令返回:returncode(int):命令的返回码"""try:returncode=os.system(command)exceptExceptionase:returncode=str(e)returnreturncode#方法6:使用os模块的popen函数,返回命令的输出结果defrun_cmd_6(command):"""运行CMD命令并返回输出结果参数:command(str):要执行的CMD命令返回:output(str):命令执行的输出结果"""try:output=os.popen(command).read()exceptExceptionase:output=str(e)returnoutput#方法7:使用commands模块的getoutput函数,返回命令的输出结果defrun_cmd_7(command):"""运行CMD命令并返回输出结果参数:command(str):要执行的CMD命令返回:output(str):命令执行的输出结果"""try:output=commands.getoutput(command)exceptExceptionase:output=str(e)returnoutput#方法8:使用commands模块的getstatusoutput函数,返回命令的返回码和输出结果defrun_cmd_8(command):"""运行CMD命令并返回返回码和输出结果参数:command(str):要执行的CMD命令返回:status(int):命令的返回码output(str):命令执行的输出结果"""try:status,output=commands.getstatusoutput(command)exceptExceptionase:status=str(e)output=""returnstatus,output#方法9:使用os模块的startfile函数,返回Nonedefrun_cmd_9(command):"""运行CMD命令参数:command(str):要执行的CMD命令返回:None"""try:os.startfile(command)exceptExceptionase:pass#方法10:使用os模块的spawn函数,返回命令的返回码defrun_cmd_10(command):"""运行CMD命令并返回返回码参数:command(str):要执行的CMD命令返回:returncode(int):命令的返回码"""try:returncode=os.spawnl(os.P_WAIT,'cmd.exe','/c',command)exceptExceptionase:returncode=str(e)returnreturncode#方法11:使用win32api模块的ShellExecute函数,返回Nonedefrun_cmd_11(command):"""运行CMD命令参数:command(str):要执行的CMD命令返回:None"""try:win32api.ShellExecute(0,'open','cmd.exe','/c{}'.format(command),'',0)exceptExceptionase:pass#方法12:使用win32api模块的CreateProcess函数,返回命令的返回码和输出结果defrun_cmd_12(command):"""运行CMD命令并返回返回码和输出结果参数:command(str):要执行的CMD命令返回:returncode(int):命令的返回码output(str):命令执行的输出结果"""try:si=win32process.STARTUPINFO()si.dwFlags|=win32process.STARTF_USESHOWWINDOWoutput=win32api.CreateProcess(None,command,None,None,False,0,None,None,si)[1].read()returncode=0exceptExceptionase:returncode=str(e)output=""returnreturncode,output#示例:运行ipconfig命令获取网络配置信息,并获取返回值result=run_cmd_1('ipconfig')print(result.returncode)print(result.stdout)#示例:运行dir命令获取文件列表,并获取输出结果output=run_cmd_2('dir')print(output)#示例:运行ping命令测试网络连接,并获取返回码returncode=run_cmd_3('pinggoogle.com')print(returncode)#示例:运行tasklist命令获取进程列表,并获取Popen对象process=run_cmd_4('tasklist')print(process.stdout.readline())#示例:运行ipconfig命令获取网络配置信息,并获取返回码returncode=run_cmd_5('ipconfig')print(returncode)#示例:运行dir命令获取文件列表,并获取输出结果output=run_cmd_6('dir')print(output)#示例:运行ping命令测试网络连接,并获取输出结果output=run_cmd_7('pinggoogle.com')print(output)#示例:运行tasklist命令获取进程列表,并获取返回码和输出结果status,output=run_cmd_8('tasklist')print(status)print(output)#示例:运行notepad命令打开记事本应用程序run_cmd_9('notepad')#示例:运行ping命令测试网络连接,并获取返回码returncode=run_cmd_10('pinggoogle.com')print(returncode)#示例:运行notepad命令打开记事本应用程序run_cmd_11('notepad')#示例:运行tasklist命令获取进程列表,并获取返回码和输出结果returncode,output=run_cmd_12('tasklist')print(returncode)print(output)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-31 04:45 , Processed in 0.487170 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表