85 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
| import os.path,sys,re,string
 | |
| 
 | |
| reverse_map = {}
 | |
| filenames = []
 | |
| reverse_map2 = {}
 | |
| filenames2 = []
 | |
| 
 | |
| 
 | |
| matcher = re.compile("\..*")
 | |
| 
 | |
| def foreachimage(arg, dirname, names):
 | |
|     #print dirname, ":"
 | |
|     global filenames
 | |
|     
 | |
|     for n in names[:]: # don't touch dot files
 | |
|         if matcher.match(n):
 | |
|             names.remove(n)
 | |
| 
 | |
|     kill_list = ['CVS', 'README', 'dev', 'unused', 'obsolete', 'retired']
 | |
|     for i in kill_list:
 | |
|         try:    names.remove(i)
 | |
|         except: pass
 | |
|     
 | |
|     #print names
 | |
|     for n in names:
 | |
|         fname = os.path.join(dirname,n)
 | |
|         #print "'%s'" % fname
 | |
|         if os.path.isfile(fname) and re.match(".*\.png", fname):
 | |
|             global reverse_map
 | |
|             #if(reverse_map.has_key(n)):
 | |
|                 #print "duplicate: ", fname
 | |
|             reverse_map[n] = dirname
 | |
|             #print "\t", fname
 | |
|             filenames.append(n)
 | |
|             
 | |
| 
 | |
| os.path.walk(sys.argv[1], foreachimage, "")
 | |
| 
 | |
| def foreachotherimage(arg, dirname, names2):
 | |
|     #print dirname, ":"
 | |
|     global filenames2
 | |
|     
 | |
|     for n in names2[:]: # don't touch dot files
 | |
|         if matcher.match(n):
 | |
|             names2.remove(n)
 | |
| 
 | |
|     kill_list = ['CVS', 'README', 'dev', 'unused', 'obsolete', 'retired']
 | |
|     for i in kill_list:
 | |
|         try:    names2.remove(i)
 | |
|         except: pass
 | |
|     
 | |
|     #print names2
 | |
|     for n in names2:
 | |
|         fname = os.path.join(dirname,n)
 | |
|         #print "'%s'" % fname
 | |
|         if os.path.isfile(fname) and re.match(".*\.png", fname):
 | |
|             global reverse_map2
 | |
|             #if(reverse_map2.has_key(n)):
 | |
|                 #print "duplicate: ", fname
 | |
|             reverse_map2[n] = dirname
 | |
|             filenames2.append(n)
 | |
|             #print "\t", fname
 | |
|             
 | |
| os.path.walk(sys.argv[2], foreachotherimage, "")
 | |
| for n in filenames:
 | |
|     if(reverse_map2.has_key(n)):
 | |
|         newname = re.match("(^.*\.)(.*\.)(png)", n)
 | |
|         if not newname:
 | |
|             print "error: n doesn't match"
 | |
|         if newname:
 | |
|             #print newname.group(1)
 | |
|             #print newname.group(0)
 | |
|             newname = newname.group(1) + sys.argv[3] + "." + newname.group(2) + newname.group(3)
 | |
|             #print newname
 | |
|             #newname = n[:-8]
 | |
|             #newname = newname +sys.argv[3]+n[-8:-4]+".png"
 | |
|             command = "mv %s %s" % (os.path.join(reverse_map2[n], n)
 | |
|                                 , os.path.join(reverse_map[n], newname))
 | |
|             print command
 | |
|             #os.system(command)
 | |
|         
 | |
| 
 | |
| 
 | |
| 
 |