ciao a tutti
la situazione è questa:
Mando in esecuzione il file task1 che riporto.

import subprocess
import time
import os
for i in range(110):
    print i
    if i==10:
        os.system('touch .lock')
        time.sleep(0.1)
        subprocess.Popen('./task2.py')
    if i==90:
        os.system('rm .lock')
    time.sleep(0.1)

Con subprocess (non sono riuscito con nient'altro.... se avete suggerimenti sono tutt'orecchi) riesco a lanciare il secondo script in parallelo al primo ma non mi sembra una cosa molto elegante soprattutto perchè vado a controllare la fine del secondo script cancellando un file (.lock).

il secondo script (task2.py) è questo:

#!/usr/bin/python
import time
a=True
d=open('data.txt','w')
x=1
while a:
    try:
        open('.lock')
        print x
        d.write("%i\n"%(x))
        x+=1
        time.sleep(0.05)
    except:
        a=False
        d.close()

Vorrei imparare e non riesco a trovare altre soluzioni...
Forse ho migliorato un po' la situazione usando i thread ma non vorrei creare pasticci.
Voi cosa ne pensate? come posso migliorare?
Il tutto dovrà essere integrato dentro la classe dell'interfaccia (gtk)
Questo il codice della prova con thread.

from threading import Thread
import time
import os
class task2(Thread):
    def __init__ (self):
        Thread.__init__(self)
    def run(self):
        print "run"
        subprocess.Popen("./task2.py")
for i in range(110):
    print i
    if i==10:
        os.system('touch .lock')
        t2=task2()
        t2.run()
    if i==50:
        os.system('rm .lock')

Rimane sempre il problema del file (.lock) per chiudere il subprocess.


Qualsiasi consiglio è gradito.
Ciao
Matteo P
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a