Python 3.x 如果名称相同,则将2个目录中具有相同名称的文件筛选到第三个文件夹中

Python 3.x 如果名称相同,则将2个目录中具有相同名称的文件筛选到第三个文件夹中,python-3.x,Python 3.x,我有两个目录,一个是.json,一个是.png文件。我需要检查png在第二个文件夹中是否有同名的json文件,如果是,我需要将png放在第三个文件夹中 为此,我需要制作一个Python脚本(3.7)。因为我通常不使用Python,所以我在实现它时遇到了一个问题。此外,保存到第三个目录的文件名应保存为递增的数字(“1.png”、“2.png”、“3.png”…) 我的想法是这样做: import os for name in os.listdir(directory): for file

我有两个目录,一个是.json,一个是.png文件。我需要检查png在第二个文件夹中是否有同名的json文件,如果是,我需要将png放在第三个文件夹中

为此,我需要制作一个Python脚本(3.7)。因为我通常不使用Python,所以我在实现它时遇到了一个问题。此外,保存到第三个目录的文件名应保存为递增的数字(“1.png”、“2.png”、“3.png”…)

我的想法是这样做:

import os

for name in os.listdir(directory):
    for filename in os.listdir(directory2):
        # checking if filename in directory2 with the name from the first directory
        # if the name is same, save it in the third directory
        # else continue


有没有可能通过os库实现这一点,因为我没有找到解决方案。如果没有,我如何解决这个问题?

您可以使用
os
shutil

导入操作系统
进口舒蒂尔
dir1=''
dir2=''
dir3=''
#创建目标文件夹
os.makedirs(dir3,exist\u ok=True)
i=1
对于next(os.walk(dir1))[2]中的文件名:
fname,扩展名=os.path.splitext(文件名)
如果extension='.png'和os.path.exists(os.path.join(dir2,f'{fname}.json')):
copyfile(os.path.join(dir1,文件名),os.path.join(dir3,f'{i}.png'))
i+=1

是的,您可以在操作系统中使用函数。签出这篇文章:顺便说一句,不要使用双层循环。使用字典。