鱿鱼西 2022-09-16 13:36 采纳率: 85.2%
浏览 27
已结题

python调用cmd顺序执行命令失败

问题遇到的现象和发生背景

python调用cmd顺序执行命令失败

代码

from time import time
from openpyxl import load_workbook
from tenacity import retry
import subprocess
from tenacity import retry,stop_after_attempt
import subprocess

global i
i=0

def replace(obj):
    if obj is None:
        obj = ''
        return obj

wb = load_workbook("./csv/information.xlsx")

'''
excel.xlsx格式
Bug         Date              De
41           2022-06          g:9
41           2022-09          g:6
'''

ws = wb['Sheet1']
contexts = []
for row in range(2, ws.max_row + 1):
    bug_id = ws["A" + str(row)].value
    date_id = ws["B" + str(row)].value
    dev_id = ws["C" + str(row)].value
    context=f".\Get \"{date_id}\" -devId \"{dev_id}\" -Path \"D:\\{bug_id}.txt\""
    contexts.append(context)
print(contexts)


# for context in contexts:
#     print(context)
# s = "&" .join (contexts)
# print(s)


@retry(stop=stop_after_attempt(2))
def runcmd():
    
    ret = subprocess.run(contexts[i],shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,encoding="utf-8",cwd=r'C:\Users\Localadmin\Desktop\GetData\')
    for i in contexts:
        if ret.returncode!=0:
            i=i+1
    if ret.returncode != 0:
        print("error:",ret)
        print('失败重试中') 
        raise Exception
    
    else:
        print("success:",ret)

runcmd('%s'%contexts[i])#字符串参数

运行结果

如果执行命令失败重试2次之后就直接报错,不会执行下一条命令

我想要达到的结果

执行命令失败后重试两次,如果还失败就执行下一条,执行成功就直接执行下一条,直到执行完所有命令

  • 写回答

2条回答 默认 最新

  • _GX_ 2022-09-16 14:12
    关注

    最后一句改为

    try:
        runcmd('%s'%contexts[i])#字符串参数
    except:
        pass
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月24日
  • 已采纳回答 9月16日
  • 创建了问题 9月16日

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?