如何将字典的键(文件路径)与对应值拼接为完整文件路径?
拼接字典中路径与文件名生成完整路径字典
原始Python字典结构:
import os file_names = {'C:\Data\Path1': ['item1.file', 'item2.file'], 'C:\Data\Path2': ['item3.file', 'item4.file']}
期望得到的结果是将每个路径(字典的键)与对应列表中的文件名拼接,生成包含完整路径的字典:
file_paths = {'C:\Data\Path1': ['C:\Data\Path1\item1.file', 'C:\Data\Path1\item2.file'], 'C:\Data\Path2': ['C:\Data\Path2\item3.file', 'C:\Data\Path2\item4.file']}
你尝试的代码:
file_paths = {folder: os.path.join(folder, file_names[folder][item]) for folder in file_names.keys() for item, _ in enumerate(file_names[folder])}
运行后每个字典键仅对应最后一个文件的完整路径,原因是字典的键具有唯一性——在嵌套循环的推导式中,每次循环都会对同一个folder键重新赋值,最终每个键只会保留最后一次循环的结果,而非生成包含所有文件路径的列表。
正确实现方式
对每个文件夹对应的文件名列表,用列表推导生成完整路径列表,再赋值给对应的字典键:
file_paths = {folder: [os.path.join(folder, filename) for filename in files] for folder, files in file_names.items()}
这样每个folder键会直接关联一个由所有完整路径组成的列表,完全符合预期结果。
内容的提问来源于stack exchange,提问作者Nev Pires
相关产品推荐
相关产品推荐

