重命名没有扩展名的文件

时间:2017-08-03 19:29:33

标签: python python-3.x

所以我得到了一个目录Dir,在Dir中有三个子目录,每个子目录有五个文件:

  1. Dir / A / one,two,three,four,five.txt
  2. Dir / B / one,two,three,four,five.txt
  3. Dir / C / one,two,three,four,five.txt
  4. 正如您所看到的,有四个没有扩展名的文件和一个带有.txt扩展名的文件

    如何以递归方式重命名所有没有扩展名的文件?

    目前我正在尝试这个,它适用于单个目录,但如果我将此脚本放入Dir,我怎么能捕获所有文件?

    import os, sys
    
    for filename in os.listdir(os.path.dirname(os.path.abspath(__file__))):
        base_file, ext = os.path.splitext(filename)
        if ext == "":
            os.rename(filename, base_file + ".png")
    

2 个答案:

答案 0 :(得分:2)

如果要执行递归遍历,请使用os.walk

for root, dirs, files in os.walk(os.path.dirname(os.path.abspath(__file__))):
    for file in files:
        base_path, ext = os.path.splitext(os.path.join(root, file))

        if not ext:
            os.rename(base_path, base_path + ".png")

os.walk会将您的文件分成普通文件和目录,因此不需要os.path.isdir

答案 1 :(得分:0)

<!--TYPO3SEARCH_begin-->