You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python调用PIL打开pathlib.WindowsPath对象报FileNotFoundError问题

问题根因

random.choices() 函数的返回值是包含选中元素的列表,而非单个选中元素。你在random_list()函数中直接将choices()返回的列表追加到了combo列表中,导致最终生成的路径列表是嵌套结构,存储的不是直接可用的WindowsPath对象,而是套了一层列表的[WindowsPath对象]。当你把该值转为字符串传入Image.open()时,就会生成"[WindowsPath('dir1/img1.png')]"这样的非法路径,触发文件找不到报错。

解决方法

仅需修改random_list()函数中取随机选中结果的一行代码,提取choices()返回列表的第一个元素即可,修正后combo中存储的就是单个WindowsPath对象,和你正常运行的第一组列表格式完全一致。

修正后的代码片段:

def random_list():
    combo = []
    for d, p in zip(layers, probabilities):
        # 取choices返回列表的第一个元素,避免嵌套列表结构
        ch = choices(d, p)[0]
        combo.append(ch)
    return combo

修改后再运行即可正常读取图片。

内容的提问来源于stack exchange,提问作者Dominick Fiducia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 13:51:00