Portál AbcLinuxu, 9. května 2025 20:45
#!/usr/bin/env python import os, sys try: rename_flag = sys.argv[1] == '--rename' except IndexError: rename_flag = False def suggest_new_name(name): try: newname = name.decode('utf-8').encode('iso-8859-2') #newname = name.decode('iso-8859-2').encode('utf-8') except UnicodeDecodeError: return False except UnicodeEncodeError: return False if newname == name: return False #No renaming necesarry return newname def rename_path(oldpath, newpath): print oldpath, '->', newpath if rename_flag: os.rename(oldpath, newpath) def process_names(root, names): for name in names: newname = suggest_new_name(name) if not newname: continue fullpath_old = os.path.join(root, name) fullpath_new = os.path.join(root, newname) rename_path(fullpath_old, fullpath_new) for root, dirs, files in os.walk('.', topdown=False): process_names(root, files) process_names(root, dirs)Program projde vše rekurzivně v aktuálním adresáři a přejmenuje názvy z utf-8 do latin2, pokud takovou konverzi lze provést. Bez parametru '--rename' běží nanečisto - pouze vypíše, co by udělal.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.