Adım adım “python” ile altyazı editörü

Adım adım “python” ile altyazı editörü

# Mayıs 20, 2018 # Kodlama Teknoloji Uncategorized 0

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# vim: ts=4:sw=4

class srt_editor():
    def __init__(self,dosya, sure,durum=False):
        
        # kullanıcıdan gelen ana değişkenler
        # durum: alt yazıya zaman mı eklenecek yoksa çıkarılacak mı ?
        # sure : çıkarılacak zaman milisaniye ölçüsünden..
        # dosya : nerdedir bu dosya ?
        
        self.durum = durum
        self.sure = sure
        self.dosya = dosya
       
        self.ayikla()
    def ayikla(self):
          # herhangibi satırda sorun çıkarsa o satırı bilmek önemli      
         self.line = 0
         # dosyadaki bilgileri bir değişkene tıkalım..
         buf = ""
          # dosyayı okumak için açmak gerek
         dosya = open(self.dosya).read()  "
          # dosyayı satır satır incelemeye geldi sıra.
          for x in  dosya.splitlines():

            self.line += 1
             
            # Eğer satırın içinde "-->" denk gelirsek bunun süre satırı olduğunu varsayıyoruz..
            if "-->" in x:
                bilgi = x.split(">")           

                # işaretimizden önceki bilgi altyazı başlangıcı
                # ve sonrakiyse altyazının sonlandığı zamanlar
                basla = bilgi[0].replace("--","")
                bit = bilgi[1]

                # başlangıç ve bitiş bilgilerini hesapla fonk. gönderiyoruz
                basla ,bit  = self.hesapla(basla) , self.hesapla(bit)             
               
                # geri dönüşlerden biri bile olumsuzsa sonraki satıra geç..
                if basla is False or bit is False:
                    continue
                # buf adlı değişkene yenilenmiş zaman bilgilerini ekle
                satir = basla + " --> " + bit
                buf = buf + satir +  "\n"
               
            else:
                # satırı aynen kopyala...
                buf = buf + x+ "\n"                   
        # dosyayı yazmak için aç ve değişkende biriken bilgileri içine yaz...           
        with open(self.dosya,"w") as dosya:
            dosya.write(buf)
        dosya.close()
       def hesapla(self,zaman):

	      # basi saniye ve ms. bilgisinden önceki zaman bilgileri

        basi = zaman.split(":")[:2]
	      # zaman olarak ele alınan saniye ve ms. bilgisi..

        zaman = zaman.split(":")[2]
       
	      # Zaman bilgisinden ms'yi ayıkla..
        # eğer ayıklamada sorun yaşanırsa satır ve zaman bilgilerini
        # ekrana yaz ve boş olarak geri dön..

        try:
          # ms bilgisini ayıkla...

            ek = zaman.split(",")[1]
        except IndexError:
            print "satir --> " + str( self.line)
            print  "zaman bilgisi --> " +str(  zaman)
            print "tüm zaman -- > " + zaman 
            return False
           
	      # saniye bilgisini al..           

        ana = zaman.split(",")[0]
       
        # Eğer durum olumluysa eksiltmek için işlemleri uygula
        if self.durum is True:
            sure_ekle = int(ek) - int(self.sure)   
           
	          # eksilen zaman binden fazlaysa
            # kaç saniyeye denk geldiğini bul ve saniye adlı değikene gir
            # ve düzenlenicek süreden saniyeleri çıkart..

            if sure_ekle < -1000:
                saniye = sure_ekle / 1000
                sure_ekle -= saniye*1000
                     
	          # eksilen süre sadece sıfırdan küçükse..
            # saniyeyi bire eşitle ve eklenen sürenin eksi değerini kaldır..                     

            elif sure_ekle < 0:
                saniye = 1
                sure_ekle = divmod(sure_ekle,-1)[0]
            # hiçbiri değilse olabilir şimdi yazınca denk geldi XD
            # ana ile tanımlanan saniyeye ms'yi ekle..               
            else:
                return ":".join(basi) + ":" + str(ana) +","+ str(sure_ekle)   
           
            sn = float(ana) - saniye
            sn = int(sn)
            return ":".join(basi) + ":" + str(sn) +","+ str(sure_ekle)
   
	      # Eğer durum olumlu değilse belirtilen süreyi zamana ekle..                 

        else:
	          # saniye adında olumsuz bir değişken oluştur..

            saniye = None   
       
            sure_ekle = int(ek) + int(self.sure)
           
	          # sure_ekle binden büyükse kaç 'saniyeyse saniyey eşitle
            # ve zaman bilgisinden çıkar..

            if sure_ekle > 1000:
                saniye = sure_ekle / 1000
                sure_ekle -= saniye*1000     
               

	          # Eğer   saniye varsa
            # ana ile belirtilen esas zamana saniyeyi ekle ve geri dön

            if saniye :
                sn = float(ana) + saniye
                sn = int(sn)
                return ":".join(basi) + ":" + str(sn) +","+ str(sure_ekle)
            # saniyelik bir şey yoksa direk " ana" zamana ekle ms'yeyi. XD
            else:
                return ":".join(basi) + ":" + str(ana) +","+ str( sure_ekle )
   
srt_editor("mpt.srt",850)
#veya
# srt _editor("mpt.srt",850,True) 

Kaynak kodun tamamı:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# vim: ts=4:sw=4

class srt_editor():
    def __init__(self,dosya, sure,durum=False):
        # kullanıcıdan gelen ana değişkenler
        # durum: alt yazıya zaman mı eklenecek yoksa çıkarılacak mı ?
        # sure : çıkarılacak zaman milisaniye ölçüsünden..
        # dosya : nerdedir bu dosya ?
       
        self.durum = durum
        self.sure = sure
        self.dosya = dosya
       
        self.ayikla()
       
    def ayikla(self):
   
        # herhangibi satırda sorun çıkarsa o satırı bilmek önemli       
        self.line = 0       
        # dosyadaki bilgileri bir değişkene tıkalım..
        buf = ""
        # dosyayı okumak için açmak gerek
        dosya = open(self.dosya).read()   
       
        # dosyayı satır satır incelemeye geldi sıra.
        for x in  dosya.splitlines():

            self.line += 1
             
            # Eğer satırın içinde "-->" denk gelirsek bunun süre satırı olduğunu varsayıyoruz..
            if "-->" in x:
                bilgi = x.split(">")           

                # işaretimizden önceki bilgi altyazı başlangıcı
                # ve sonrakiyse altyazının sonlandığı zamanlar
                basla = bilgi[0].replace("--","")
                bit = bilgi[1]

                # başlangıç ve bitiş bilgilerini hesapla fonk. gönderiyoruz
                basla ,bit  = self.hesapla(basla) , self.hesapla(bit)             
               
                # geri dönüşlerden biri bile olumsuzsa sonraki satıra geç..
                if basla is False or bit is False:
                    continue
                # buf adlı değişkene yenilenmiş zaman bilgilerini ekle
                satir = basla + " --> " + bit
                buf = buf + satir +  "\n"
               
            else:
                # satırı aynen kopyala...
                buf = buf + x+ "\n"                   
        # dosyayı yazmak için aç ve değişkende biriken bilgileri içine yaz...           
        with open(self.dosya,"w") as dosya:
            dosya.write(buf)
        dosya.close()
                 
       
           
 
    def hesapla(self,zaman):

        # basi saniye ve ms. bilgisinden önceki zaman bilgileri
        basi = zaman.split(":")[:2]
        # zaman olarak ele alınan saniye ve ms. bilgisi..
        zaman = zaman.split(":")[2]
       
        # Zaman bilgisinden ms'yi ayıkla..
        # eğer ayıklamada sorun yaşanırsa satır ve zaman bilgilerini
        # ekrana yaz ve boş olarak geri dön..
        try:
            # ms bilgisini ayıkla...
            ek = zaman.split(",")[1]
        except IndexError:
            print "satir --> " + str( self.line)
            print  "zaman bilgisi --> " +str(  zaman)
            print "tüm zaman -- > " + zaman 
            return False
           
        # saniye bilgisini al..           
        ana = zaman.split(",")[0]
       
        # Eğer durum olumluysa eksiltmek için işlemleri uygula
        if self.durum is True:
            sure_ekle = int(ek) - int(self.sure)   
           
            # eksilen zaman binden fazlaysa
            # kaç saniyeye denk geldiğini bul ve saniye adlı değikene gir
            # ve düzenlenicek süreden saniyeleri çıkart..
            if sure_ekle < -1000:
                saniye = sure_ekle / 1000
                sure_ekle -= saniye*1000
                     
            # eksilen süre sadece sıfırdan küçükse..
            # saniyeyi bire eşitle ve eklenen sürenin eksi değerini kaldır..                     
            elif sure_ekle < 0:
                saniye = 1
                sure_ekle = divmod(sure_ekle,-1)[0]
            # hiçbiri değilse olabilir şimdi yazınca denk geldi XD
            # ana ile tanımlanan saniyeye ms'yi ekle..               
            else:
                return ":".join(basi) + ":" + str(ana) +","+ str(sure_ekle)   
           
            sn = float(ana) - saniye
            sn = int(sn)
            return ":".join(basi) + ":" + str(sn) +","+ str(sure_ekle)
   
        # Eğer durum olumlu değilse belirtilen süreyi zamana ekle..                 
        else:
            # saniye adında olumsuz bir değişken oluştur..
            saniye = None   
       
            sure_ekle = int(ek) + int(self.sure)
           
            # sure_ekle binden büyükse kaç 'saniyeyse saniyey eşitle
            # ve zaman bilgisinden çıkar..
            if sure_ekle > 1000:
                saniye = sure_ekle / 1000
                sure_ekle -= saniye*1000     
               

            # Eğer   saniye varsa
            # ana ile belirtilen esas zamana saniyeyi ekle ve geri dön
            if saniye :
                sn = float(ana) + saniye
                sn = int(sn)
                return ":".join(basi) + ":" + str(sn) +","+ str(sure_ekle)
            # saniyelik bir şey yoksa direk " ana" zamana ekle ms'yeyi. XD
            else:
                return ":".join(basi) + ":" + str(ana) +","+ str( sure_ekle )
   
srt_editor("mpt.srt",850)
#veya
# srt _editor("mpt.srt",850,True)    
Java’ya Merhaba
Java Teknolojisi nedir ve neden ihtiyacımız olsun? Java bir programlama dili ve bilgi işlem ortamı olarak ilk olarak Sun Microsytem Read more.
PR VS AD? Reklam nedir, ne değildir?
   Shakira, Darth Vader’ı alt etti; Pop yıldızın Activia sponsorlu müzik videosu tüm zamanların en çok paylaşılan reklamına dönüşmesi: bit.ly/1ogx9UW Read more.
Venüste Neden Yaşam Yoktur
     Venüs adını eski roma tanrıçasından alır, eski yunandaysa afrodit aşk ve güzellik tanrıçası, venüsün bir diğer adı ise Read more.
Glade, gtk+ ?
GLADE Glade Nedir? Gtk Builder? Gtk Builder İşlevleri? ÖRNEKLER Glade Nedir? Glade, Gnome Masaüstü ortamına ,GTK+ araçkiti için hızlı ve Read more.
Adım adım “python” ile altyazı editörü
#!/usr/bin/env python # -*- coding: utf-8 -*- # vim: ts=4:sw=4 class srt_editor(): def __init__(self,dosya, sure,durum=False): # kullanıcıdan gelen ana değişkenler Read more.
Parça parça “Crystallizing Public Opinion”
.. the professional concept of public relations has its roots in pirimitive times, though relationship between those who led and Read more.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir