Python 为什么'if string[0]==';0';:`工作,但也给出了一个错误?
我是编程新手,我正在尝试做我的第一个“项目”; 该项目非常适合我的银行报告,并使用openpyxl对其进行总结 无论如何,我正在尝试处理日期,并在一个日期字符串中接收月份,这是一种工作方式,但它在输出中给了我一些奇怪的错误:Python 为什么'if string[0]==';0';:`工作,但也给出了一个错误?,python,excel,string,openpyxl,Python,Excel,String,Openpyxl,我是编程新手,我正在尝试做我的第一个“项目”; 该项目非常适合我的银行报告,并使用openpyxl对其进行总结 无论如何,我正在尝试处理日期,并在一个日期字符串中接收月份,这是一种工作方式,但它在输出中给了我一些奇怪的错误: **Traceback (most recent call last): File "D:/Avi...Bank/Python App/app.py", line 22, in <module> if month[0] == '0
**Traceback (most recent call last):
File "D:/Avi...Bank/Python App/app.py", line 22, in <module>
if month[0] == '0':
IndexError: string index out of range**
这是运行时错误
变量月
的值间接依赖于变量行
因此,每当变量month
的值变为空字符串时,就不能访问空字符串的第0个索引
我建议你做两件事:
循环的范围以避免逻辑错误
错误消息表示
month
为空。Excel将日期存储为数字,而不是字符串。它表示您到达的行中,month
显示为空字符串。无法从空字符串中读取索引0。创建自己的计数器会使代码更难读取,更容易出错。使用openpyxl API来避免这种情况,例如ws.iter_行中的行(min_row=24,values_only=True):date=row[0];price=row[7]并使用Python datetime.strtime函数为您转换日期。嘿,非常感谢!我告诉python忽略None变量:if cell.value为None:pass如果它解决了您的用例,请接受答案
from pathlib import PureWindowsPath
import openpyxl as xl
import datetime as dt
wb_inputs = PureWindowsPath('D:/Avi...Inputs.xlsx')
wb_outputs = PureWindowsPath('D:/Aviv...Outputs.xlsx')
wb_inputs = xl.load_workbook(wb_inputs)
wb_outputs = xl.load_workbook(wb_outputs)
input1_sheet = wb_inputs['Input1']
input2_sheet = wb_inputs['Input2']
input3_sheet = wb_inputs['Input3']
output1_sheet = wb_outputs['Output1 - Summary']
output2_sheet = wb_outputs['Output2 - data']
for row in range(23, input3_sheet.max_row + 1):
cell = input3_sheet.cell(row, 1)
price_for_cell = input3_sheet.cell(row, 6)
date_cell = str(cell.value)
month = date_cell[5:7]
if month[0] == '0':
print(month[1])
else:
print(month)