簡體   English   中英

使用 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 將不起作用,因為它會保留不是我想要的文件結構。

我正在使用的代碼與此問題中發布的代碼非常相似: 在 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM