调用os.chdir报错NotADirectoryError:目录名称无效问题解析
修复NotADirectoryError: [WinError 267] 错误
错误原因
你调用os.chdir(path)时,path被赋值为图片文件的完整路径(C:\Users\marzo\Downloads\frogblood.jpg),但os.chdir()的参数必须是目录路径,而非具体文件路径,因此触发了这个报错。
解决方案
有两种简单的修复方式:
方式1:修正os.chdir()的路径为目录路径
将path变量改为图片所在的文件夹路径,再执行目录切换:
import os import imageio from skimage.color import rgb2gray from skimage.filters import gaussian import matplotlib.pyplot as plt # 改为目录路径,而非文件路径 path = r'C:\Users\marzo\Downloads' os.chdir(path) imagename = 'frogblood' image = imageio.imread(imagename + '.jpg') img = rgb2gray(image) img = gaussian(img, sigma=1) plt.imshow(img, cmap='gray') plt.show()
方式2:直接使用完整文件路径读取(更推荐)
无需切换目录,直接将完整文件路径传给imageio.imread(),代码更简洁且避免路径切换的潜在问题:
import imageio from skimage.color import rgb2gray from skimage.filters import gaussian import matplotlib.pyplot as plt filepath = r'C:\Users\marzo\Downloads\frogblood.jpg' image = imageio.imread(filepath) img = rgb2gray(image) img = gaussian(img, sigma=1) plt.imshow(img, cmap='gray') plt.show()
额外说明
如果需要处理多个图片(比如你定义的filepath2、filepath3),方式2的扩展性更好,直接遍历文件路径列表即可,无需频繁切换目录。
内容的提问来源于stack exchange,提问作者codeman
相关产品推荐
相关产品推荐

