Py yada exe uzantılı dosya çağırma

Merhaba böyle bir fonksiyonum var mesajoku da gelen datanın uzunluguna göre farklı fonksiyolarda işlem yaptırıyorum. Mesajoku fonksiyonunda gelen datanın 22 karakter olması durumunda takipsorgufinal.py isimli dosyayı çalıştırıyorum fakat bu dosyanın işlem yapması epey uzun sürüyor belkı 1 gun belkı 2 gun sql den cektıgı sorgu durumu nezaman degişirse ozaman bitiyor. Benim sorunum ise bu dosyayı çalıştırdıgımda o dosya arka planda çalışmaya devam etsin fakat yesin_nokta fonksıyonuna gerı donsun ıstıyorum. Mevcutta ise calıstırdıgım dosyanın işi bitmeden yesil_nokta fonksiyonuna geri dönmüyor. Sanırım konu threading ile ilgili ama bir türlü kafama oturtamadım. Şimdiden yardımlarınız için teşekkür ederim

def mesajoku():
    global onceki_msj
    global data

    
    pyautogui.click(781,921)
    pyautogui.doubleClick(781, 921)
    pyautogui.hotkey('ctrl', 'c')
    try:
        win32clipboard.OpenClipboard()
        data = win32clipboard.GetClipboardData()
        win32clipboard.CloseClipboard()
        if len(data) == 13:
            data=data.upper()
            sql(data)
        elif len(data) == 22:
            os.system("./takipsorgufinal.py")
        elif len(data) < 9:
            sqlper(data)
        elif  len(data) :
            data != onceki_msj
            onceki_msj = data
            taleper(data)
    except TypeError:
        pyautogui.click(1728, 930)
        win32clipboard.OpenClipboard()
        win32clipboard.CloseClipboard()

def yesil_nokta():
        try:
            position = pt.locateOnScreen('yesil.png', confidence=.7)
            pt.moveTo(position[0:2], duration=.5)
            pt.moveRel(-100, 0, duration=.5)
            pt.doubleClick(interval=.3)
            mesajoku()
            print ('Yeni Mesajı bul')
        except Exception as e:
            #print('Hata (yesil_nokta): ', e)
            pt.click(374,318)
            #time.sleep(2)

x = 1
while x < 3:
    yesil_nokta()
    time.sleep(1)

Merhabalar, subprocess modülünün Popen sınıfını kullanabilirsiniz. wait metodu kullanılmadan veya programın çıktısını almaya çalışmadığınız sürece Popen sınıfı ana koddan bağımsız çalışacaktır.

1 Beğeni

teşekkür ederim araştırıyorum hemen

Yardımınız için teşekkür ederim os.system() yerine os.startfile() diyerek sorunu şimdilik aşabildim fakat doğru çözümmüdür bilemiyorum :slight_smile:

O da olur. Hatta daha kolay olur. Ancak bildiğim kadarıyla startfile sadece windows sistemler için geçerli olması lazım. Eğer programı sadece Windows için yazıyorsanız sıkıntı olmayacaktır.

1 Beğeni