python:通过子文件夹名称重命名子文件夹中的文件

时间:2017-07-21 14:44:17

标签: python os.walk os.path

我有一个包含许多子文件夹的文件夹。子文件夹的Eash具有不同类型的文件。我试图通过它们所在的子文件夹名称重命名这些文件(因为每个文件都有自己的扩展名,所以不会重复这些文件)。 数据如下所示:

  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 ) 

我的一些代码不起作用。

onCreate

有什么想法吗?谢谢。

1 个答案:

答案 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)