Skip to content

Instantly share code, notes, and snippets.

@burner1024
Created March 21, 2018 15:39
Show Gist options
  • Save burner1024/0256d628ee83a509df8e11c93814a525 to your computer and use it in GitHub Desktop.
Save burner1024/0256d628ee83a509df8e11c93814a525 to your computer and use it in GitHub Desktop.
lowercase a directory recursively
#!/usr/bin/env python
# coding: utf-8
version='1.0.0'
import os
import argparse
import sys
#parse args
parser = argparse.ArgumentParser(description='Recursively lowercase directory',formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument("dir", default='.', help='target directory')
args=parser.parse_args()
dir=args.dir
#lowercase tree
def lowercase_rename(root_dir,items):
for item in items:
old_name=os.path.join(root_dir, item)
new_name=os.path.join(root_dir, item.lower())
if new_name != old_name:
print "renaming {} to {}".format(old_name, new_name)
os.rename(old_name, new_name)
for dir_name, subdir_list, file_list in os.walk(dir,topdown=False):
lowercase_rename(dir_name,file_list)
lowercase_rename(dir_name,subdir_list)
new_dir=dir.lower()
if new_dir != dir:
os.rename(dir, new_dir)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment