Instantly share code, notes, and snippets.

What would you like to do?
Replaces the pairs in androidx-class-mapping.csv (get it here: to migrate Android support to AndroidX
import glob
import csv
dictCSV = "C:/path/to/androidx-class-mapping.csv"
projectPath = "C:/path/to/project/src/"
def replace_all(text, dic):
for i, j in dic.items():
text = text.replace(i, j)
return text
with open(dictCSV, mode='r') as infile:
reader = csv.reader(infile)
replaceDict = {rows[0]:rows[1] for rows in reader}
files = []
for ext in ('/**/*.xml', '/**/*.kt', '/**/*.java'):
files.extend(glob.iglob(projectPath + ext, recursive=True))
for filename in files:
print("Replacing in file: " + filename)
with open(filename, 'r') as file :
filedata =
filedata = replace_all(filedata, replaceDict)
with open(filename, 'w') as file:
except Exception as e:
print("Error reading/writing file. Skipping ...")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment