import unidecode KEEPCHARACTERS = (' ','.','_', '-') def clear_path_name(path): path = unidecode.unidecode(path) # remove umlauts, accents and others path = "".join([c if (c.isalnum() or c in KEEPCHARACTERS) else "_" for c in path]) # remove all non-alphanumeric characters path = path.rstrip() # remove trailing spaces return path def shorten_name(name, offset = 50): if len(name) > offset: return name[:offset] + "..." else: return name