我有一个包含一组文件的目录。我试图为现有目录中的每个文件名创建一个文件夹,并将其命名为给定的文件名。但是我的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")
答案 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')