Python 缩进错误: IndentationError: expected an indented block 解决方法
Python 缩进错误: IndentationError: expected an indented block 解决方法
在 Python 代码中,缩进是语法的一部分,用来表示代码块的层次结构。当代码的缩进不正确时,就会出现 "IndentationError: expected an indented block" 错误。
错误示例:
try:
print('正在截图,请稍等...')
sleep(2)
# 获取页面大小
if browser.capabilities['browserName'] == 'firefox':
page_width = browser.execute_script('return document.body.scrollWidth')
page_height = browser.execute_script('return document.body.scrollHeight')
else:
page_rect = browser.execute_cdp_cmd('Page.getLayoutMetrics', {})
page_width = page_rect['contentSize']['width']
page_height = page_rect['contentSize']['height']
# 截图配置
screenshot_config = {
'quality': 80,
'format': 'png',
'clip': {
'width': page_width,
'height': page_height,
'x': 0,
'y': 0,
'scale': 1
}}
# 截图
if browser.capabilities['browserName'] == 'firefox':
result = browser.execute_script('return canvas.toDataURL('image/png');')
with open('{}/{}.png'.format(keyword_info_item['name'], keyword), 'wb') as f:
f.write(base64.b64decode(result.split(',')[1]))
else:
result = browser.execute_cdp_cmd('Page.captureScreenshot', screenshot_config)
with open('{}/{}.png'.format(keyword_info_item['name'], keyword), 'wb') as f:
f.write(base64.b64decode(result['data']))
print('截图成功')
print('===============================')
except Exception as e:
print('截图失败')
print(e)
print('===============================')
错误原因:
代码中 print('正在截图,请稍等...') 语句缺少一个缩进,导致它不在 try 代码块内。
解决方法:
将 print('正在截图,请稍等...') 语句缩进一下,使其与其他代码在同一级别。
try:
print('正在截图,请稍等...')
sleep(2)
# 获取页面大小
if browser.capabilities['browserName'] == 'firefox':
page_width = browser.execute_script('return document.body.scrollWidth')
page_height = browser.execute_script('return document.body.scrollHeight')
else:
page_rect = browser.execute_cdp_cmd('Page.getLayoutMetrics', {})
page_width = page_rect['contentSize']['width']
page_height = page_rect['contentSize']['height']
# 截图配置
screenshot_config = {
'quality': 80,
'format': 'png',
'clip': {
'width': page_width,
'height': page_height,
'x': 0,
'y': 0,
'scale': 1
}
}
# 截图
if browser.capabilities['browserName'] == 'firefox':
result = browser.execute_script('return canvas.toDataURL('image/png');')
with open('{}/{}.png'.format(keyword_info_item['name'], keyword), 'wb') as f:
f.write(base64.b64decode(result.split(',')[1]))
else:
result = browser.execute_cdp_cmd('Page.captureScreenshot', screenshot_config)
with open('{}/{}.png'.format(keyword_info_item['name'], keyword), 'wb') as f:
f.write(base64.b64decode(result['data']))
print('截图成功')
print('===============================')
except Exception as e:
print('截图失败')
print(e)
print('===============================')
注意:
- Python 代码的缩进通常使用四个空格。
- 确保所有代码块的缩进都一致。
其他可能导致缩进错误的原因:
- 混合使用空格和制表符进行缩进。
- 代码编辑器设置的缩进大小不一致。
总结:
解决 "IndentationError: expected an indented block" 错误的关键在于检查代码的缩进,并确保所有代码块的缩进一致。
原文地址: https://www.cveoy.top/t/topic/m2NZ 著作权归作者所有。请勿转载和采集!