如何为目录中的每个项目创建一个文件夹?

时间:2012-07-11 03:10:07

标签: python python-3.x

我无法将我创建的文件夹放到我想要的位置。对于给定文件夹中的每个文件,我想创建一个新文件夹,然后将该文件放在新文件夹中。我的问题是我创建的新文件夹被放在父目录中,而不是我想要的。我的例子:

def createFolder():
    dir_name = 'C:\\Users\\Adrian\\Entertainment\\Coding\\Test Folder'
    files = os.listdir(dir_name)
    for i in files:
        os.mkdir(i)

假设我在该目录中的文件是Hello.txt和Goodbye.txt。当我运行脚本时,它会为这些文件创建新文件夹,但是在“C:\ Users \ Adrian \ Entertainment \ Coding”中将它们放在上面一级。

如何创建它们以便在与文件相同的位置创建它们,即AKA'C:\ Users \ Adrian \ Entertainment \ Coding \ Test Folder'?

2 个答案:

答案 0 :(得分:2)

os.listdir(dir_name)仅列出文件的名称,而不是文件的完整路径。要获取文件的路径,请将其与dir_name

一起加入
os.mkdir(os.path.join(dir_name, i))

答案 1 :(得分:2)

import os, shutil

for i in files:
  os.mkdir(os.path.join(dir_name , i.split(".")[0]))
  shutil.copy(os.path.join(dir_name , i), os.path.join(dir_name , i.split(".")[0]))