首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在python中,我如何在没有文件的情况下制作文件夹树的精确副本?

在python中,我如何在没有文件的情况下制作文件夹树的精确副本?
EN

Stack Overflow用户
提问于 2020-07-16 05:39:15
回答 1查看 329关注 0票数 0

我需要制作一个文件夹及其所有子文件夹的副本,但不需要目录附带的任何文件。

在Python语言中,我使用os.walk函数在一个目录中自上而下地处理很多子文件夹中的大量图像。我想精确地复制这个文件夹树(由os.walk函数执行),并将其放在我指定的不同目录中。这是为了让我可以将我的输出图像保存在它们来自的文件夹的等效副本中。

我试过了:

代码语言:javascript
复制
from distutils.dir_util import copy_tree
copy_tree("/a/b/c", "/x/y/z")

但不知道如何编辑成我想要的。如何使用python命令将空的文件夹树复制到我选择的目录?

我是应该使用shutil.copytree命令,还是应该在处理图像的for循环中放入一些东西呢?

EN

回答 1

Stack Overflow用户

发布于 2020-07-16 06:18:01

如果需要,您可以使用shutil.copytree

它有一个ignore参数,允许你忽略被复制的项目(在你的例子中忽略所有非目录)

代码语言:javascript
复制
import os
import shutil

def cptree(src, dst):

    def keep_only_dirs(path, files):
        to_ignore = [
            fname for fname in files
            if not os.path.isdir(os.path.join(path, fname))
            ]
        return to_ignore

    # This works for python3 (<3.8), BUT the target directory MUST not exist
    shutil.copytree(src, dst, ignore=keep_only_dirs)

    # For python 3.8 you can use following code (Here the target directory can
    # already exist and only new directories will be added
    # shutil.copytree(src, dst, ignore=keep_only_dirs, dirs_exist_ok=True)

或者,如果您没有安装python3.8,并且希望能够使用现有的目标目录运行代码,则可以使用os.walk()手工创建一些代码

如果这是你需要的,告诉我,我会写一个例子。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62924173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档