在 Python 脚本中,使用 os.path.join() 创建子表文件路径时,可能会遇到 "Subtable for nan not found" 错误。这通常是因为 Excel 文件中某些行的“Project manager”或“Email address”列为空,导致无法构建正确的文件路径。

为了解决这个问题,可以添加一个条件来检查这些列是否为空,并跳过那些缺少信息的行。以下代码展示了如何使用 pandas 库中的 pd.isna() 函数检查空值,并使用 continue 语句跳过处理空值的循环迭代:

for i, row in df.iterrows():  # 遍历 Excel 文件的每一行并附加相应的子表
    pm_name = row['Project manager']
    pm_email = row['Email address']

    if pd.isna(pm_name) or pd.isna(pm_email):
        print(f'Missing information for row {i}')
        continue

    excel_path = os.path.join(subtables_path, f'{pm_name}.xlsx')
    if os.path.exists(excel_path):
        xlsxpart = MIMEApplication(open(excel_path, 'rb').read())
        xlsxpart.add_header('Content-Disposition', 'attachment', filename=f'{pm_name}.xlsx')
        msg.attach(xlsxpart)
    else:
        print(f'Subtable for {pm_name} not found')

此代码首先检查“Project manager”和“Email address”列是否为空。如果其中一个为空,则打印一条消息来指示哪些行缺少信息,并使用 continue 语句跳过处理该行的代码,继续处理下一行。

通过添加此条件,可以有效地避免 "Subtable for nan not found" 错误,确保脚本正常运行。

Python: 解决

原文地址: https://www.cveoy.top/t/topic/oTRj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录