2017-07-21 18 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を使用すると、ルートのディレクトリ名を取得できます。

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

関連する問題