20 ноември 2008

Маймунизаторски скрипт

Един приятел ме помоли да напиша програма която да превежда кирилица на език от рисунки, като за всяка буква има съответната рисунка. Понеже още не ми е дал самите рисунки и другите детайли които ми трябват, не мога да започна работа. Но понеже нямах какво да правя начатках този бърз скрипт, написан на python3.0, защото имах проблем с unicode-а при 2.5, поради unicode проблеми, все още не мога да си инсталирам и python2.6, но все тая. Ето скрипта, който превръща кирилица в латиница:

  1. #!/usr/bin/env python  
  2. import sys  
  3.   
  4. letters={  
  5.         "а":"a","б":"b","в":"v","г":"g","д":"d","е":"e","ж":"j","з":"z",  
  6.         "и":"i","й":"i","к":"k","л":"l","м":"m","н":"n","о":"o","п":"p",  
  7.         "р":"r","с":"s","т":"t","у":"u","ф":"f","х":"h","ц":"c","ч":"ch",  
  8.         "ш":"sh","щ":"sht","ъ":"a","ь":"","ю":"ju","я":"ja","А":"A",  
  9.         "Б":"B","В":"V","Г":"G","Д":"D","Е":"E","Ж":"J","З":"Z","И":"I",  
  10.         "Й":"J","К":"K","Л":"L","М":"M","Н":"N","О":"O","П":"P","Р":"R",  
  11.         "С":"S","Т":"T","У":"U","Ф":"F","Х":"H","Ц":"C","Ч":"Ch","Ш":"Sh",  
  12.         "Щ":"Sht","Ъ":"A","Ь":"","Ю":"Ju","Я":"Ja"}  
  13.   
  14. def parse(inp):  
  15.     inp.split(" ")  
  16.     for word in inp:  
  17.         yield word  
  18.   
  19. def translate(word):  
  20.     newd=""  
  21.     for char in word:  
  22.         if char in letters.keys():  
  23.             newd=newd+letters[char]  
  24.         else:  
  25.             newd=newd+char  
  26.     return newd  
  27.   
  28. def main():  
  29.     inp=open(sys.argv[1])  
  30.     output=''  
  31.     for x in [translate(word) for word in parse(inp.read())]:  
  32.         output+=x  
  33.     print(output)  
  34.   
  35. if __name__=="__main__":  
  36.     main()  


А що се отнася до програмата която трябва да се занимава с изображенията, най вероятно ще използвам PIL, проблемът е че PIL още няма потдръжка за python3.0 и за това ще трябва или да разбера от къде ми идва проблема с уникода при 2.5 или да търся начин да хакна горния скрипт, така че да вика python2.5 и да му подава латинизирания текст, така че да може да се направят изображенията. С други думи преебан съм.

Няма коментари: