[Python] Lancio di stampe con Python
Daniele Varrazzo
piro a develer.com
Mar 9 Dic 2014 14:51:10 CET
On 2014-12-09 13:40, Marco Fochesato wrote:
> Ciao a tutti,
> non riesco a capire dove sbaglio sinceramente.
>
> import subprocess
> subprocess.call(["/usr/bin/lpr -P"+stampante, nomefile)
>
> L'ambiente in cui lavoro č Linux.
> Se lancio il comando da terminale, con ovviamente al posto delle
> variabili
> il nome della stampante e il nome del file, riesco a lanciare la
> stampa.
> Se lo lancio con il comando sopra descritto, mi esce un errore:
>
> OSError: [Errno 2] File o directory non esistente
>
> Se invece lancio il comando senza la stampante, la stampa mi riesce
> sulla
> stampante predefinita di sistema.
>
>
> Poi, se un domani volessi lanciare le stampe anche su windows,
> funzionerą?
> Non credo...
>
> Avete qualche suggerimento in merito?
Quello che hai scritto e` un errore: hai una lista aperta e non chiusa.
Probabilmente l'errore e` che se passi i comandi come una stringa devi
anche usare shell=True. Questo ha degli svantaggi/pericoli ben spiegati
nella documentazione. Il modo piu` sicuro e spesso piu` pratico e` di
passare gli argomenti come una lista: in questo caso il primo elemento
dev'essere l'eseguibile, quindi qualcosa tipo
subprocess.call(["/usr/bin/lpr", "-P" + stampante, nomefile])
-- Daniele
Maggiori informazioni sulla lista
Python