相关疑难解决方法(0)

Python干净的方式来包装try块中的单个语句

我目前正在使用com进行Excel的Python自动化.它功能齐全,可以满足我的需求,但我发现了一些令人惊讶的东西.有时,我使用的某些Excel命令会因为没有明显原因的异常而失败.其他时候,他们会工作.

在我正在做的VB等效代码中,这个问题显然被认为是正常的,并且用一个On Error Resume Next语句贴满了.当然,Python没有声明.

我无法将整个集合包裹在一个try except循环中,因为它可能会在中途"失败"并且无法正常完成.那么,将几个独立语句包装到try除块之外的pythonic方法是什么?具体来说,比以下更清洁:

try:
   statement
except:
   pass
try:
   statement
except:
   pass
Run Code Online (Sandbox Code Playgroud)

相关的代码是excel.Selection.Borders位.

def addGridlines(self, infile, outfile):
    """convert csv to excel, and add gridlines"""
    # set constants for excel
    xlDiagonalDown = 5
    xlDiagonalUp = 6
    xlNone = -4142
    xlContinuous = 1
    xlThin = 2
    xlAutomatic = -4105
    xlEdgeLeft = 7
    xlEdgeTop = 8
    xlEdgeBottom = 9
    xlEdgeRight = 10
    xlInsideVertical = 11
    xlInsideHorizontal = 12
            # open file
    excel = win32com.client.Dispatch('Excel.Application') …
Run Code Online (Sandbox Code Playgroud)

python com excel vba try-catch

8
推荐指数
2
解决办法
3520
查看次数

Python:如何使用相同的 try/except 块简化多个语句

我有一个这样的代码块:

try:
    gitlab.gl_delete_project(gitlab_project_id)
except DevOpsError as e:
    if e.status_code != 404:
            raise e
try:
    redmine.rm_delete_project(redmine_project_id)
except DevOpsError as e:
    if e.status_code != 404:
        raise e
try:
    if harbor_project_id is not None:
        harbor.hb_delete_project(harbor_project_id)
except DevOpsError as e:
    if e.status_code != 404:
        raise e
Run Code Online (Sandbox Code Playgroud)

每个方法都可能引发DevOpsError,在某些情况下,我只想忽略异常,或者在其他时候重新引发它。

由于 try/except 块都是相同的,有没有办法简化代码?

编辑:我建议了一个类似的问题,但它没有告诉我如何将参数传递给方法。

python

2
推荐指数
1
解决办法
60
查看次数

标签 统计

python ×2

com ×1

excel ×1

try-catch ×1

vba ×1