如何使用python在发现特定扩展名文件的目录中移动整个目录?

2024-04-27 14:56:19 发布

您现在位置:Python中文网/ 问答频道 /正文

嘿,伙计们,我对python和stack overflow都是新手,所以如果我问了一个愚蠢的问题,我深表歉意

这就是我想做的,我的电脑里有很多游戏都放在随机文件夹中,例如:一个游戏在G:\test1\folder1\gamename另一个游戏在G:\test1\folder2\gamename等。我要做的是用os.walk扫描整个G:\test1目录,如果有.exe文件存在于任何文件夹中,我需要存在该.exe文件的整个树(带有该文件夹的名称)将移动到G:\test1\Games目录。我使用shutil.copytree()来完成这个任务,它工作正常,但是我没有在目标中获得gamename文件夹

例如:如果源目录是G:\test1\limbo 目标目录是G:\test1\games 我正在将所有内容复制到文件夹G:\test1\games\[此处]。但我想把内容转到 G:\test1\games\limbo\[此处]

import os, shutil
src = "G:\\test1"
dst = src+"\\games"
os.chdir(src)

for i, j, k in os.walk(src):
    for h in k:
        if h.endswith(".exe"):
            shutil.copytree(i, dst)

提前谢谢


Tags: 文件src目录文件夹游戏内容osexe
1条回答
网友
1楼 · 发布于 2024-04-27 14:56:19

在复制之前,必须获取文件夹的名称并在G:\test1中创建它。如果你想像你说的那样移动目录,也可以在上面使用shutil.move()

for dirpath, dirnames, filenames in os.walk(src):
    if any((fn.lower().endswith(".exe") for fn in filenames)):
        shutil.move(dirpath, dst)
        # Or:
        # os.makedirs(os.path.join(dst, os.path.basename(dirpath)))
        # shutil.copytree(dirpath, os.path.join(dst, os.path.basename(dirpath)))

相关问题 更多 >