2017-06-02 65 views
-1

我正在將計算機中的備份/同步文件提供給外部硬盤。如何針對包含相同文件的目錄結構重新排列文件?

例如我整理我的外部硬盤上的一些文件,這樣 (我有大約1000目錄和10000個文件,下面的目錄結構給出僅用於說明目的)

folderA 
    -aa.jpg 
    -ab.mp3 
    -ac.mp4 

folderB 
    -ba.jpg 
    -bb.mp3 
    -bc.mp4 

,並在我的電腦我有在一個文件夾中的「臨時」

aa.jpg, ab.mp3, ac.mp4, ba.jpg, bb.mp3, bc.mp4 

在那裏我有

我想在「臨時」文件相同的文件被安排這樣

temp 

--folderA 
    -aa.jpg 
    -ab.mp3 
    -ac.mp4 

--folderB 
    -ba.jpg 
    -bb.mp3 
    -bc.mp4 

是否有任何工具或腳本來爲我做這件事(對於1000多個目錄和10000多個文件)?

回答

0

對於Windows創建下面的Python腳本,並將其複製到臨時目錄,只需用你的「臨時」替換路徑:

import os 
import shutil 

if not os.path.exists('C:/Users/myuser/Desktop/day/folderA'): 
     os.makedirs('C:/Users/myuser/Desktop/day/folderA') 
if not os.path.exists('C:/Users/myuser/Desktop/day/folderB'): 
     os.makedirs('C:/Users/myuser/Desktop/day/folderB') 

sourcepath='C:/Users/myuser/Desktop/day' 
source = os.listdir(sourcepath) 
destinationpath = 'C:/Users/myuser/Desktop/day/folderA' 
destinationpath2 = 'C:/Users/myuser/Desktop/day/folderB' 
for files in source: 
if files.startswith('a'): 
    shutil.move(os.path.join(sourcepath,files), os.path.join(destinationpath,files)) 
if files.startswith('b'): 
    shutil.move(os.path.join(sourcepath,files), os.path.join(destinationpath2,files)) 

listA = os.listdir('C:/Users/myuser/Desktop/day/folderA') 
listA.sort() 
listB = os.listdir('C:/Users/myuser/Desktop/day/folderB') 
listB.sort() 
+0

我有1000+的目錄和文件10000+。上述目錄結構僅用於說明目的 –

相關問題