2016-03-01 88 views
0

每週工作時,我負責將100-200個文件從一個文件夾手動移動到相應的子文件夾中。在這樣做了幾個星期之後,我心想:這可以做得更快!將文件移動到Python中的相應子目錄

我已經在學校使用了Python 2.7和3.X,但主要是(非常)基本的搜索引擎和文本搜索。

我發現另一個線程,其中一個人被告知使用os.rename或shutil.move。我做了一個簡單的測試與os.rename:

os.rename("path/to/current/file.foo", "path/to/new/desination/for/file.foo") 

它的工作,迄今爲止很好。

有沒有什麼辦法可以使python運行從一個文件夾中的每個文件,並將其移動到另一個文件夾中相應的子目錄?原始目錄包含所有文件,而目標目錄包含所有文件夾。

每個文件(A_file,B_file等)與文件夾(A_folder,B_folder等)具有相同的名稱,這意味着它們的順序是正確的。

這讓我想到一個簡單的迭代可以工作,如(更多的算法比代碼):

for file in original_dir 
    move file to folder_x in tar_dir 
    x += 1 

這顯然是不完整的,但也許有人可以點我在正確的方向。

+0

記住不要告訴任何人在工作中關於這個腳本,所以你可以有10分鐘(或無論過去多長時間)做任何你想做的事情。 ;) – Michael

回答

0

這使得目錄遞歸。

os.makedirs(path) 

所以你將路徑傳遞到你想要的目錄。例如/ path/to/ 您將跟隨副本。

def move_file(new_path_to_file, file_to_move): 
    file_name = file_to_move.split(os.path.sep)[-1] 
    os.makedirs(new_path_to_file) 
    os.rename(file_to_move, os.path.join(new_path_to_file, file_name)) 

你也可以通過傳遞文件名來簡化它。

+0

嗨Jase, 感謝您的快速回答。我設法使用非常相似的工作來工作:-) –

相關問題