Python为目录中的每个文件创建文件夹

时间:2015-12-18 17:24:56

标签: python

我有一个包含一组文件的目录。我试图为现有目录中的每个文件名创建一个文件夹,并将其命名为给定的文件名。但是我的I / O错误权限被拒绝了......这段代码出了什么问题?

import os

path = "C:/Users/CDGarcia/Desktop"

os.chdir(path)

gribs = os.listdir("testgrib")
print gribs

print os.getcwd()

if not os.path.exists(os.path.basename("gribs")):
    os.makedirs(os.path.dirname("gribs"))
with open(path, "w") as f:
    f.write("filename")

1 个答案:

答案 0 :(得分:1)

os.path.dirname()没有达到预期的效果。它返回传递给它的路径的目录名称。因此它会将您传递的任何字符串解释为路径。因此,当您传递没有目录部分的路径时,它将返回一个空字符串:

>>> os.path.dirname("gribs")
''

因此,使用os.makedirs()您正在尝试创建一个空目录,当然这不会创建您要查找的路径。

相反,您应该使用os.makedirs('gribs')创建相对于当前目录的gribs文件夹。

此外,当open(path)是桌面目录的路径时,path将无效。您必须将路径传递到那里的文件。您可能想要使用相对于您在其中创建的文件夹的文件路径:

with open('gribs/something.txt', 'w+') as f:
    f.write('example content')