我无法将我创建的文件夹放到我想要的位置。对于给定文件夹中的每个文件,我想创建一个新文件夹,然后将该文件放在新文件夹中。我的问题是我创建的新文件夹被放在父目录中,而不是我想要的。我的例子:
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'?
答案 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]))