PyCharm中plt.savefig报FileNotFoundError:指定目录不存在
解决plt.savefig的FileNotFoundError问题
针对你遇到的FileNotFoundError——即使创建了lines文件夹仍报错,可能有以下几个原因及对应解决办法:
1. 确认工作目录与文件夹位置匹配
Python脚本的工作目录可能不是你创建lines文件夹的目录。比如你在脚本所在文件夹创建了lines,但运行脚本时的工作目录是上级目录,就会找不到目标文件夹。
解决办法:
- 使用脚本所在目录的绝对路径拼接保存路径:
import os # 获取当前脚本的绝对路径所在目录 script_dir = os.path.dirname(os.path.abspath(__file__)) # 拼接完整保存路径 save_path = os.path.join(script_dir, "lines", f"{featureVector[15]}_{didx}.png") plt.savefig(save_path) - 或者先切换工作目录到脚本所在路径:
import os os.chdir(os.path.dirname(os.path.abspath(__file__))) plt.savefig(f"lines/{featureVector[15]}_{didx}.png")
2. 提前确保文件夹存在(处理创建时机/权限问题)
可能你创建文件夹的代码执行时机晚于保存操作,或者创建时因权限问题未成功。用os.makedirs可以确保文件夹存在,即使已存在也不会报错:
import os # 创建lines文件夹,若上级目录不存在则递归创建,已存在则忽略 os.makedirs("lines", exist_ok=True) # 执行保存操作 plt.savefig(f"lines/{featureVector[15]}_{didx}.png")
注意:Linux/macOS系统需确保当前用户有创建文件夹的权限;Windows系统检查是否有文件夹写入权限。
3. 检查文件名是否包含非法字符
确认featureVector[15]的值(此处为BlueConvex)是否包含系统不允许的字符,比如/ \ : * ? " < > |等。如果有,先过滤这些字符:
import re # 过滤文件名中的非法字符 valid_name = re.sub(r'[\\/*?:"<>|]', "", featureVector[15]) plt.savefig(f"lines/{valid_name}_{didx}.png")
内容的提问来源于stack exchange,提问作者Yip-Yip
相关产品推荐
相关产品推荐

