Python指定输出路径中单反斜杠变双反斜杠触发FileNotFoundError如何解决
错误根因
你观察到的路径中单反斜杠变为双反斜杠是Python字符串转义的正常显示效果,并非报错诱因。触发FileNotFoundError的核心原因有两个:
- 使用
mode='a'(追加模式)调用pd.ExcelWriter时,要求目标Excel文件必须提前存在,追加模式不支持自动创建新文件,你动态生成的文件名对应的文件本身不存在,因此触发报错。 - 手动拼接路径易出现格式错误,若
FolderLocation对应的目录本身不存在,也会触发找不到路径的错误。
解决方案
步骤1:自动创建目标存储目录
用os模块判断目录是否存在,不存在则自动创建:
import os import time import pandas as pd FolderLocation = r'C:\Users\Desktop\Tool' # 目录不存在则递归创建 if not os.path.exists(FolderLocation): os.makedirs(FolderLocation)
步骤2:安全拼接文件路径
使用os.path.join拼接路径,避免手动输入斜杠导致的格式问题:
timestr = time.strftime("%Y%m%d-%H%M%S") Results = os.path.join(FolderLocation, f"Results -{timestr}.xlsx")
步骤3:适配Excel写入模式
根据文件是否存在自动选择写入模式,不存在时用写模式新建文件,存在时用追加模式写入:
if os.path.exists(Results): # 已有文件则追加,sheet重复时直接替换 with pd.ExcelWriter(Results, engine='openpyxl', mode='a', if_sheet_exists='replace') as writer: IR.to_excel(writer, sheet_name='Inputs', startrow=0, index=False) else: # 无文件则新建写入 with pd.ExcelWriter(Results, engine='openpyxl', mode='w') as writer: IR.to_excel(writer, sheet_name='Inputs', startrow=0, index=False)
如果不需要保留同路径下的旧文件,可直接统一使用mode='w',无需额外判断文件是否存在。
内容的提问来源于stack exchange,提问作者user15253500
相关产品推荐
相关产品推荐

