首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Py:创建包含嵌套文件夹的文件夹层次结构

Py:创建包含嵌套文件夹的文件夹层次结构
EN

Stack Overflow用户
提问于 2018-06-04 21:23:09
回答 1查看 54关注 0票数 2

我正在尝试使用以下内容自动创建项目文件夹结构:

代码语言:javascript
复制
..\Data
..\Data\GPS
..\Data\Tabular
..\Data\Working
..\Documents
..\Documents\Documentation
..\Documents\Pics_Graphics
..\Products

而且,更复杂的是,这就是我所得到的,当然有一种方法可以将我的层次结构作为一个列表包含进来,并循环通过它,同时保持"if exists with...which...works....but skip“条件?我看过https://codereview.stackexchange.com/questions/28715/script-for-creating-a-hierarchy-of-directories吗?它有类似的结果,但我不能在这种情况下解开提供的列表,它是基于计数器的。

代码语言:javascript
复制
import os
import errno
data = 'C://temp//Pro_Folder_Structure//Data'
try:
    os.makedirs(data)
except OSError as exception:
    if exception.errno != errno.EEXIST:
        raise
    else:
        print ("\nBE CAREFUL! Directory %s already exists." % data)

datagps = 'C://temp//Pro_Folder_Structure//Data//GPS'
try:
    os.makedirs(datagps)
except OSError as exception:
    if exception.errno != errno.EEXIST:
        raise
    else:
        print ("\nBE CAREFUL! Directory %s already exists." % datagps)

dataworking = 'C://temp//Pro_Folder_Structure//Data//Working'
try:
    os.makedirs(dataworking)
except OSError as exception:
    if exception.errno != errno.EEXIST:
        raise
    else:
        print ("\nBE CAREFUL! Directory %s already exists." % dataworking)

datatab = 'C://temp//Pro_Folder_Structure//Data//Tabular'
try:
    os.makedirs(datatab)
except OSError as exception:
    if exception.errno != errno.EEXIST:
        raise
    else:
        print ("\nBE CAREFUL! Directory %s already exists." % datatab)

docs = 'C://temp//Pro_Folder_Structure//Documents'
try:
    os.makedirs(docs)
except OSError as exception:
    if exception.errno != errno.EEXIST:
        raise
    else:
        print ("\nBE CAREFUL! Directory %s already exists." % docs)

document = 'C://temp//Pro_Folder_Structure//Documents//Documentation'
try:
    os.makedirs(document)
except OSError as exception:
    if exception.errno != errno.EEXIST:
        raise
    else:
        print ("\nBE CAREFUL! Directory %s already exists." % document)

pics = 'C://temp//Pro_Folder_Structure//Documents//Pics_Graphics'
try:
    os.makedirs(pics)
except OSError as exception:
    if exception.errno != errno.EEXIST:
        raise
    else:
        print ("\nBE CAREFUL! Directory %s already exists." % pics)

prod = 'C://temp//Pro_Folder_Structure//Products'
try:
    os.makedirs(prod)
except OSError as exception:
    if exception.errno != errno.EEXIST:
        raise
    else:
        print ("\nBE CAREFUL! Directory %s already exists." % prod) 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-04 21:33:57

您可以使用for循环。根据目录的深度和实用性的原因,您也可以使用嵌套的for循环。

所以你可以这样做:

代码语言:javascript
复制
directories = ['Data','GPS','Data//GPS',....,'Products']
basedirectory = 'C://temp//Pro_Folder_Structure//'
for (i in range (len (directories)):
    newDir = basedirectory + directories[i]
    try:
        os.makedirs(newDir)
    except OSError as exception:
        if exception.errno != errno.EEXIST:
           raise
        else:
           print ("\nBE CAREFUL! Directory %s already exists." % newDir)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50681691

复制
相关文章

相似问题

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