2017-07-21 228 views
1

我有一個包含大量子文件夾的文件夾。子文件夾的Eash有不同類型的文件。我試圖通過它們所在的子文件夾名稱重命名這些文件(因爲每個文件都有自己的擴展名,所以不會重複)。 數據看起來是這樣的:python:按子文件夾名稱重命名子文件夾中的文件

folder 
     \ sub1 
     \ sub1\file1.ext1 
     \ sub1\file2.ext2 
     . 
     . 
     . 
     \ sub2 
     \ sub2\file1.ext1 
     \ sub2\file2.ext2 

所需的輸出

folder 
    \ sub1 
    \ sub1\sub1.ext1 
    \ sub1\sub1.ext2 
    . 
    . 
    . 
    \ sub2 
    \ sub2\sub2.ext1 
    \ sub2\sub2.ext2 

` 

我的代碼不工作位。

import os 

dir_name = os.getcwd() 

for root, dirs, files in os.walk(dir_name, topdown=False): 
    for file in files: 
     file_name = os.path.splitext(file)[0]#file name no ext 
     os.rename(os.path.splitext(file)[0], root) 

任何想法?謝謝。

+0

您是否嘗試過我提供的解決方案? –

回答

0

您可以使用os.path.basename來獲取root的目錄名稱。

import os 

dir_name = os.getcwd() 

for root, dirs, files in os.walk(dir_name, topdown=False): 
    for file in files: 
     file_name = os.path.splitext(file)[0]#file name no ext 
     extension = os.path.splitext(file)[1] 
     dir_name = os.path.basename(root) 
     os.rename(root+"/"+file,root+"/"+dir_name+extension) 
+0

非常感謝。這就是我需要的 – Nadiia

相關問題