首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建文件夹树所需的目录

创建文件夹树所需的目录
EN

Code Golf用户
提问于 2011-02-16 03:08:56
回答 1查看 233关注 0票数 3

假设您的计算机上有此文件夹结构:

代码语言:javascript
复制
/a

你想要这些文件夹:

代码语言:javascript
复制
/a/b
/a/c
/b/b

您需要创建四个目录,例如使用mkdir:

代码语言:javascript
复制
mkdir /a/b
mkdir /a/c
mkdir /b
mkdir /b/b

编写一个程序,在给定现有和所需目录结构的情况下,该程序将输出需要创建的目录。

输入

第一行有两个数字: n,现有目录的数目,以及m,所需目录的数目,下面n行有现有目录的列表,下面m行有所需的目录列表。

示例:

代码语言:javascript
复制
1 3
/a
/a/b
/a/c
/b/b

输出

需要创建的目录

示例:

代码语言:javascript
复制
/a/b
/a/c
/b
/b/b
EN

回答 1

Code Golf用户

发布于 2011-02-16 03:27:34

Python

在Python中,您只需使用os.makedirs()。请看这篇文章底部的文档

代码语言:javascript
复制
import sys

num_existing, num_required = map(int, next(sys.stdin).split())

sep = "/"
directory = {}

for i,path in enumerate(s.rstrip("\n") for s in sys.stdin):
    d = directory    
    base = ""
    for p in path.split(sep)[1:]:
        base += sep+p
        if p not in d:
            if i >= num_existing:
                print base
            d[p]={}
        d = d[p]

用于os.makedirs()的Python

代码语言:javascript
复制
>>> import os
>>> help(os.makedirs)

Help on function makedirs in module os:

makedirs(name, mode=511)
    makedirs(path [, mode=0777])
    
    Super-mkdir; create a leaf directory and all intermediate ones.
    Works like mkdir, except that any intermediate path segment (not
    just the rightmost) will be created if it does not exist.  This is
    recursive.
票数 2
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/964

复制
相关文章

相似问题

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