使用 Python 将多个目录中的文件复制到一个目录中
Copy files from multiple directories into one directory using Python
使用 python 将文件从多个目录复制到一个目录中的最简单方法是什么?更清楚地说,我有一棵看起来像这样的树
+Home_Directory
++folder1
-csv1.csv
-csv2.csv
++folder2
-csv3.csv
-csv4.csv
我想将 csv1、csv2 等全部放入某个没有文件夹层次结构的指定目录中。
+some_folder
-csv1.csv
-csv2.csv
-csv3.csv
-csv4.csv
我看过的一些解决方案:
使用 shutil.copytree 将不起作用,因为它会保留我不想要的文件结构。
我正在玩的代码与这个问题中 pos 的代码非常相似:
copy multiple files in python
问题是我不知道如何迭代地做到这一点。大概这只是在此之上的另一个 for 循环,但我对 os 和 shutil 库不够熟悉,无法确切知道我在迭代什么。有什么帮助吗?
这是我想到的。我假设您只从 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
编辑:在 RootDir1 的末尾缺少一个 '。您也可以将其用作入门指南,使其按需要工作。
import glob
import shutil
#import os
dst_dir = "E:/images"
print ('Named explicitly:')
for name in glob.glob('E:/ms/*/*/*'):
if name.endswith(".jpg") or name.endswith(".pdf") :
shutil.copy(name, dst_dir)
print ('\t', name)
您可以使用它来将所有子文件夹从同一个目录移动到不同的目录。
import shutil
import os
path=r'* Your Path*'
arr = os.listdir(path)
for i in range(len(arr)):
source_dir=path+'/'+arr[i]
target_dir = r'*Target path*'
file_names = os.listdir(source_dir)
for file_name in file_names:
shutil.move(os.path.join(source_dir, file_name), target_dir)
使用 python 将文件从多个目录复制到一个目录中的最简单方法是什么?更清楚地说,我有一棵看起来像这样的树
+Home_Directory
++folder1
-csv1.csv
-csv2.csv
++folder2
-csv3.csv
-csv4.csv
我想将 csv1、csv2 等全部放入某个没有文件夹层次结构的指定目录中。
+some_folder
-csv1.csv
-csv2.csv
-csv3.csv
-csv4.csv
我看过的一些解决方案:
使用 shutil.copytree 将不起作用,因为它会保留我不想要的文件结构。
我正在玩的代码与这个问题中 pos 的代码非常相似: copy multiple files in python 问题是我不知道如何迭代地做到这一点。大概这只是在此之上的另一个 for 循环,但我对 os 和 shutil 库不够熟悉,无法确切知道我在迭代什么。有什么帮助吗?
这是我想到的。我假设您只从 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
编辑:在 RootDir1 的末尾缺少一个 '。您也可以将其用作入门指南,使其按需要工作。
import glob
import shutil
#import os
dst_dir = "E:/images"
print ('Named explicitly:')
for name in glob.glob('E:/ms/*/*/*'):
if name.endswith(".jpg") or name.endswith(".pdf") :
shutil.copy(name, dst_dir)
print ('\t', name)
您可以使用它来将所有子文件夹从同一个目录移动到不同的目录。
import shutil
import os
path=r'* Your Path*'
arr = os.listdir(path)
for i in range(len(arr)):
source_dir=path+'/'+arr[i]
target_dir = r'*Target path*'
file_names = os.listdir(source_dir)
for file_name in file_names:
shutil.move(os.path.join(source_dir, file_name), target_dir)