遍历文件时遇到密钥错误

问题描述 投票:-1回答:2

我正在某些文件中循环播放,检查扩展名,并根据Dict(取决于文件扩展名)创建一些文件夹。

嗯,有些事情进展顺利,但是在创建新目录时出现此错误。

有人有想法吗?


错误如下

destination = os.path.join(dossier_final, fichiers[f_splited])

KeyError: '"C:/Users/thiba/Desktop/python/formation-developpeur-python/Section30/Exercice 23/01-sources/tri_fichiers_sources\\"'

代码:

    files = glob.glob(dossier, recursive=True)

    fichiers = {
        "mp3": "Musique",
        "wav": "Musique",
        "mp4": "Videos",
        "mov": "Videos",
        "jpg": "Images",
        "jpeg": "Images",
        "png": "Images",
        "pdf": "Documents",
        "json": "Ok"
    }

    for f in files:
        f_splited = f.split(".")[-1]
        if f_splited in fichiers:
            print("Ok")
        elif f.endswith(f_splited):
            destination = os.path.join(dossier_final, fichiers[f_splited])
            os.makedirs(destination, exist_ok=True)
            if destination:
                shutil.move(f, destination)
python loops dictionary
2个回答
1
投票

如果您的循环到达destination = os.path.join(dossier_final, fichiers[f_splited]),则表示f_splited不在fichiers中。因此,尝试访问fichiers[f_splited]是一个关键错误-没有fichiers[f_splited]这样的东西。


0
投票

您的后缀f_splited将具有该文件夹的值''

由于在fichiers中这不是有效的文件格式类型,您将收到密钥错误。您应该从glob产生的列表中过滤掉文件夹。

© www.soinside.com 2019 - 2024. All rights reserved.