我目前正在使用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) 我有一个这样的代码块:
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 块都是相同的,有没有办法简化代码?
编辑:我建议了一个类似的问题,但它没有告诉我如何将参数传递给方法。