[Python] avvio di un programma esterno

2012-11-05 Per discussione Vittorio Spina

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

2012-11-05 Per discussione Daniele Varrazzo

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

2012-11-05 Per discussione Vittorio Spina
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

2012-11-05 Per discussione orsomannaro
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

2012-11-05 Per discussione Vittorio Spina

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

2012-11-05 Per discussione Matteo Boscolo
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