2

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

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'?

4

2 回答 2

3
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]))
于 2012-07-11T04:33:46.797 回答
2

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

os.mkdir(os.path.join(dir_name, i))
于 2012-07-11T03:14:27.203 回答