我有一个带有文件夹名称的列表,我需要为其在当前位置创建目录并将文件复制到这些创建的目录中。因为需要将文件复制到正确的目录,所以我使用循环遍历列表中的每个文件夹名称,根据该文件夹名称创建目录,然后将文件复制到其中。基于列表中的元素创建目录不是问题。我的问题是如何在每次循环迭代中捕获那些创建的目录,以便在下一步复制文件时可以在路径中使用它。
这是我尝试过的:
dir = ['aaa','bbb')
for dir in dir_list:
print os.mkdir(path)
在循环执行期间,已在当前工作目录中成功创建文件夹。但是我还需要获取其名称。我已打印出结果,显示os.mkdir返回“ None ”。如何在循环中获取创建的目录名称,而不是“ None ”对象?
答案 0 :(得分:1)
如注释中所述,文件夹的名称是您传递到os.kdir()
的路径。但是,您也可以在shutil
的帮助下,在创建目录/文件夹之后直接将文件复制到文件夹中。可以像下面这样完成:
import os
import shutil
root = "root/"
folders = ['path_to_dir/dir1', 'path_to_dir/dir2', 'path_to_dir/dir3']
fnames = ['path_to_file/file1','path_to_file/file2','path_to_file/file2']
for folder in folders:
try:
os.makedir(root + folder)
except:
print("Error creating folder: ", folder)
for fname in fnames:
try:
src_path = root + fname
dst_path = root + folder + "/" + fname.split("/")[-1]
shutil.copyfile(src_path, dst_path)
except:
print("Couldn't copy file: ", fname)