Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在循环中创建目录时捕获目录名_Python - Fatal编程技术网

Python 在循环中创建目录时捕获目录名

Python 在循环中创建目录时捕获目录名,python,Python,我有一个文件夹名列表,我需要在当前位置为其创建目录,并将文件复制到这些创建的目录中。因为文件需要复制到正确的目录,所以我使用循环遍历列表中的每个文件夹名称,根据文件夹名称创建一个目录,然后将文件复制到其中。基于列表中的元素创建目录不是问题。我的问题是如何在每个循环迭代中捕获那些创建的目录,以便在下一步复制文件时在路径中使用它 以下是我尝试过的: dir = ['aaa','bbb') for dir in dir_list: print os.mkdir(path) 在循环执行期间,已

我有一个文件夹名列表,我需要在当前位置为其创建目录,并将文件复制到这些创建的目录中。因为文件需要复制到正确的目录,所以我使用循环遍历列表中的每个文件夹名称,根据文件夹名称创建一个目录,然后将文件复制到其中。基于列表中的元素创建目录不是问题。我的问题是如何在每个循环迭代中捕获那些创建的目录,以便在下一步复制文件时在路径中使用它

以下是我尝试过的:

dir = ['aaa','bbb')
for dir in dir_list:
    print os.mkdir(path)

在循环执行期间,已在当前工作目录中成功创建文件夹。但我还需要捕捉它的名字。我打印的结果显示os.mkdir返回None。如何在循环中创建目录名而不是无对象?

如注释中所述,文件夹的名称是传递到os.kdir的路径。但是,您也可以在shutil的帮助下,在创建目录/文件夹之后直接将文件复制到文件夹中。这可以通过如下方式完成:

导入操作系统 进口舒蒂尔 根=根/ 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'] 对于文件夹中的文件夹: 尝试: os.makedirroot+文件夹 除: 创建文件夹时出现打印错误:,文件夹 对于fnames中的fname: 尝试: src_path=root+fname dst_path=root+文件夹+/+fname.split/[-1] shutil.copyfilesrc_路径,dst_路径 除: PrintName无法复制文件:,fname
当您在目录列表中使用“for dir”进行迭代时:“dir”是您正在创建的目录的名称。目录的路径是您作为os.mkdir的参数提供的路径。如果成功,os.mkdir应该不会返回任何名称。您已经有了这些名称,您首先使用它们创建目录。获取目录的绝对名称有问题吗?这将是os.path.abspathPath谢谢你的提示。我无法使用shutil,因为我正在从Hadoop复制文件,但您的答案在适应我的情况后仍然有效。很高兴它起到了帮助作用:作为shutil的工作,您可以使用os.popen或os.system或subprocess。在这一点上,@kmario23的答案给出了舒蒂尔的多种替代方案。