首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在一个目录中的文件夹中创建多个子文件夹

在一个目录中的文件夹中创建多个子文件夹
EN

Stack Overflow用户
提问于 2017-02-10 21:16:25
回答 2查看 3.6K关注 0票数 4

我需要帮助创建多个子文件夹在每个文件夹内的目录。我想我已经接近了,但我一直有一个错误。我是Python新手。这是我的代码:

代码语言:javascript
代码运行次数:0
运行
复制
import os
rootpath = "C:\Users\test"
sub_folders = ['map1', 'map2', 'map3', 'map4']
folders = []
for path in os.listdir(rootpath):
    folders.append(os.join.path(rootpath, path))
    print folders # the folders list now contains the full path to each folder
for f in folders:
    os.makedirs(os.path.join(f, folders))

我不断收到错误消息:

代码语言:javascript
代码运行次数:0
运行
复制
Traceback (most recent call last):
File "<interactive input>", line 2, in <module>
File "C:\Python27\ArcGIS10.3\lib\ntpath.py", line 66, in join
p_drive, p_path = splitdrive(p)
File "C:\Python27\ArcGIS10.3\lib\ntpath.py", line 115, in splitdrive
normp = p.replace(altsep, sep)
AttributeError: 'list' object has no attribute 'replace'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-10 21:34:53

Windows不喜欢这个语句rootpath = "C:\Users\test",原因有两个:(1)反斜杠与后面的字符组合在一起,以生成您实际需要的东西,(2) Windows不愿意允许非特权用户在User文件夹中创建子文件夹。

这是另一个选择。

代码语言:javascript
代码运行次数:0
运行
复制
>>> import os
>>> rootpath = r'c:\Users\Bill\test'
>>> os.mkdir(rootpath)
>>> os.chdir(rootpath)
>>> for sub_folder in ['map1', 'map2', 'map3', 'map4']:
...     os.mkdir(sub_folder)
...     
>>> 

在新文件夹的名称前面放置一个r,以便将反斜杠按字面处理。使用mkdir创建新的子文件夹,然后对其进行chdir。现在,遍历您的子文件夹列表,并使用mkdir创建每个子文件夹。

有关r和来自python文档的原始字符串的更多信息

字符串文本可以选择以字母'r''R'作为前缀;这些字符串称为原始字符串,并使用不同的规则解释反斜杠转义序列。

票数 3
EN

Stack Overflow用户

发布于 2017-02-11 13:26:00

谢谢比尔。我对你的代码做了一点修改,把它弄明白了。我所做的是:

代码语言:javascript
代码运行次数:0
运行
复制
import oS
root_path =r"C:\Users\sworkman\test"
sub_folders = ['Map1, Map2, Map3, Map4']
folders = []
for path in os.listdir(root_path):
   folders.append(os.path.join(root_path, path))
   print folders

for f in folders:
    os.makedirs(os.path.join(f, folders))

for f in folders:
    os.chdir(f)
    for sub_folder in sub_folders:
        os.mkdir(sub_folder)

我以前不知道os.chdir方法。这很有帮助。再次感谢。

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

https://stackoverflow.com/questions/42168784

复制
相关文章

相似问题

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