使用Python将文件从多个目录复制到一个目录

sfo*_*ney 3 python directory operating-system copy

使用python将文件从多个目录复制到一个目录中的最简单方法是什么?更清楚地说,我有一棵像这样的树

+Home_Directory
  ++folder1
   -csv1.csv
   -csv2.csv
  ++folder2
   -csv3.csv
   -csv4.csv
Run Code Online (Sandbox Code Playgroud)

我想将csv1,csv2,... etc全部放入某个指定的目录中,而不使用文件夹层次结构。

+some_folder
   -csv1.csv
   -csv2.csv
   -csv3.csv
   -csv4.csv
Run Code Online (Sandbox Code Playgroud)

我看过的一些解决方案:

使用shutil.copytree将无法正常工作,因为它将保留我不需要的文件结构。

我正在使用的代码与此问题中发布的代码非常相似: 在python中复制多个文件, 问题是我不知道如何迭代执行此操作。大概只是这之上的另一个for循环,但是我对os和shutil库还不够熟悉,无法确切地知道我要迭代的内容。有什么帮助吗?

Lam*_*ost 5

这就是我的想法。我假设您只是从1个目录中提取csv文件。

RootDir1 = r'*your directory*'
TargetFolder = r'*your target folder*'
for root, dirs, files in os.walk((os.path.normpath(RootDir1)), topdown=False):
        for name in files:
            if name.endswith('.csv'):
                print "Found"
                SourceFolder = os.path.join(root,name)
                shutil.copy2(SourceFolder, TargetFolder) #copies csv to new folder
Run Code Online (Sandbox Code Playgroud)

编辑:RootDir1末尾缺少'。您也可以将其用作入门指南,以使其按需工作。