gpt4 book ai didi

python - 比较两个文件列表,忽略一个列表中的文件扩展名

转载 作者:太空宇宙 更新时间:2023-11-03 13:39:37 25 4
gpt4 key购买 nike

我有两个列表

list1 = ['image1.png', 'image2.png', 'image3.png', 'image3.png']
list2 = ['image1.pdf', 'image2.eps', 'image3.ps']

如果名称(忽略扩展名)包含在 list2 中,我想创建一个包含 list1 名称的列表。对于上面的例子,正确答案是

['image1.png', 'image2.png', 'image3.png']

知道怎么做吗?谢谢卡尔

最佳答案

from os.path import splitext

list1 = ['image1.png', 'image2.png', 'image3.png', 'image3.png', 'image4.png', 'image3.jpg']
list2 = ['image1.pdf', 'image2.eps', 'image3.ps', 'image5.doc']

# Create a lookup set of the document names sans extensions.
documents = set([splitext(filename)[0] for filename in list2])

# Compare each stripped filename in list1 to the list of stripped document filenames.
matches = [filename for filename in set(list1) if splitext(filename)[0] in documents]

print matches

输出:

['image1.png', 'image2.png', 'image3.png', 'image3.jpg']

请注意,如果需要,它必须适用于具有多个扩展名的文件,例如 .tar.gz(filename.partition(".")[0] 会做的伎俩)。但这意味着点不能放在文件名中的任何位置,因为 第一个 点现在分隔扩展名。

关于python - 比较两个文件列表,忽略一个列表中的文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33837747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com