[Python] avvio di un programma esterno
Ciao a tutti, devo avviare un programma esterno al mio codice. se scrivo /import os import subprocess print inizio os.system(c:/programma.exe) print fine/ il codice funziona e la scritta fine viene stampata a video dopo che programma.exe viene chiuso. se invece scrivo /subprocess.call(['c:/programma.exe', ])/ mi apsetterei che il codice non rimanesse appeso. la call di Subprocess però mi da un errore di accesso negato. Uguale se uso Popen Cosa sbaglio? Ci sono altri modi per avviare un exe o un bat e non rimanere appesi? Grazie, spero di essere stato chiaro Vittorio ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] avvio di un programma esterno
On 2012-11-05 13:42, Vittorio Spina wrote: /subprocess.call(['c:/programma.exe', ])/ Forse ci sono troppe virgolette qui? -- Daniele Varrazzo - Develer S.r.l. http://www.develer.com ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] avvio di un programma esterno RISOLTO
no, in realtà le virgolette vanno bene, servono per non aver problemi con eventuali spazi. In questo caso sono superflue. L'errore era proprio sintattico mi funziona il comando: /process=subprocess.Popen(r''+file+'', shell=True)/ dove /file=c:/prog.exe/ Il 05/11/2012 15:33, Daniele Varrazzo ha scritto: On 2012-11-05 13:42, Vittorio Spina wrote: /subprocess.call(['c:/programma.exe', ])/ Forse ci sono troppe virgolette qui? -- == Spina Giovanni Vittorio email: vittorio.sp...@gmail.com -- mobile: +39 389 15 24 211 == :: AVVISO PRIVACY = = = = = = = = = = = = = = = = = = = = Il contenuto della presente e-mail ed i suoi allegati, sono diretti esclusivamente al destinatario e devono ritenersi riservati, con divieto di diffusione o di uso non conforme alle finalità per le quali la presente e-mail è stata inviata. Pertanto, ne è vietata la diffusione e la comunicazione da parte di soggetti diversi dal destinatario, ai sensi degli artt. 616 e ss. c.p. e D.lgs n. 196/03 Codice Privacy. Se la presente e-mail ed i suoi allegati sono stati ricevuti per errore, siete pregati di distruggere quanto ricevuto e di informare il mittente al seguente recapito: Mailto:vittorio.sp...@gmail.com == ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] Lettura file binario
E' la prima volta che ho a che fare con yield e lambda quindi mi farebbe piacere avere vostro ok su quanto segue. Devo importare dati da diversi file binari. Per ognuno devo saltare i primi n byte e poi leggere record di m bytes. def file_in_chunks(filename, chunksize, headersize): with open(filename, 'rb') as f: f.seek(headersize) while True: chunk = f.read(chunksize) if len(chunk) chunksize: break yield chunk file1_records = lambda f: file_in_chunks(f,1024,1024) file2_records = lambda f: file_in_chunks(f,512,1024) ... def import_file1 import os f = os.path.join(FILES_ROOT, file1) for record in file1_records(f): Grazie. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] aiuto subprocess py2exe
Ciao a tutti, ho un problema che non so come superare. Ho scritto il programmino banale: /import os import subprocess from aconfig import * Config= aconfig(conf/conf.cf) #leggo la configurazione esterna con una classe mia file= Config.filetolaunch #consideriamolo ad esempio file=c:/prog.exe checkDoubleRun= Config.checkDoubleRun #consideriamolo True processisactive=False if checkDoubleRun: in_file = open(pid.pid,r) FilePid = in_file.read() in_file.close() p = subprocess.Popen(pslist +FilePid.replace(\n,), stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, err = p.communicate() if was not found not in out: processisactive=True if not processisactive: process=subprocess.Popen(r''+file+'', shell=True) pid=process.pid out_file = open(pid.pid,w) out_file.write(str(pid)) out_file.close()/ In pratica il programmetto in questione non fa altro che lanciare un'altra app e segnarsi il PID che viene scritto in un file temporaneo pid.pid se quando priprovo a lanciare l'applicazione vedo che il PID è attivo (usando pslist) il programma non lo lancia di nuovo, questo per non avviare due volte la stessa applicazione. Funziona. Se però lo compilo con py2exe come window, ricevo un errore sull'handle riportato nel file di log: /Traceback (most recent call last): File launcher.py, line 15, in module File subprocess.pyc, line 588, in __init__ File subprocess.pyc, line 707, in _get_handles File subprocess.pyc, line 752, in _make_inheritable WindowsError: [Error 6] Handle non valido/ cosa può essere secondo voi? grazie Vittorio ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] aiuto subprocess py2exe
L'errore e' alla righa 15 .. quindi se ci dici quale e' la linea e' meglio :))) quando compili con py2exe e come se tutto il tuo codice fosse racchiuso dentro ad uno zip.. non sono sicuro, ma non vorrei che la open cercasse di aprire un file che sta dentro lo zippettone .. ciao, Matteo Il 05/11/2012 16:48, Vittorio Spina ha scritto: Ciao a tutti, ho un problema che non so come superare. Ho scritto il programmino banale: /import os import subprocess from aconfig import * Config= aconfig(conf/conf.cf) #leggo la configurazione esterna con una classe mia file= Config.filetolaunch #consideriamolo ad esempio file=c:/prog.exe checkDoubleRun= Config.checkDoubleRun #consideriamolo True processisactive=False if checkDoubleRun: in_file = open(pid.pid,r) FilePid = in_file.read() in_file.close() p = subprocess.Popen(pslist +FilePid.replace(\n,), stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, err = p.communicate() if was not found not in out: processisactive=True if not processisactive: process=subprocess.Popen(r''+file+'', shell=True) pid=process.pid out_file = open(pid.pid,w) out_file.write(str(pid)) out_file.close()/ In pratica il programmetto in questione non fa altro che lanciare un'altra app e segnarsi il PID che viene scritto in un file temporaneo pid.pid se quando priprovo a lanciare l'applicazione vedo che il PID è attivo (usando pslist) il programma non lo lancia di nuovo, questo per non avviare due volte la stessa applicazione. Funziona. Se però lo compilo con py2exe come window, ricevo un errore sull'handle riportato nel file di log: /Traceback (most recent call last): File launcher.py, line 15, in module File subprocess.pyc, line 588, in __init__ File subprocess.pyc, line 707, in _get_handles File subprocess.pyc, line 752, in _make_inheritable WindowsError: [Error 6] Handle non valido/ cosa può essere secondo voi? grazie Vittorio ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python