[Python] Esecuzione dnscmd con python3

Alessandro Dentella sandro a e-den.it
Lun 21 Ott 2013 16:37:43 CEST


On Mon, Oct 21, 2013 at 03:36:17PM +0200, Marco Buttu wrote:
> On 10/21/2013 12:45 PM, Marco Passanisi wrote:
> >
> >import subprocess
> >output = subprocess.Popen('"C:\Windows\System32\dnscmd.exe"
> >/EnumZones', shell=True, stdout=subprocess.PIPE,
> >stderr=subprocess.PIPE)
> >
> >out, err = output.communicate()
> >
> >print(err)
> 
> Ciao, innanzitutto, come ti hanno detto, dovresti usare delle
> stringhe raw. Pero' il problema non e' questo, perche' sei stato
> fortunato e nessuna delle sequenze di caratterei \x fa parte di una
> sequenza di escape ;)
> Inoltre, quando usi shell=True, la stringa viene eseguita dalla
> shell sottostante, quindi avresti potuto scrivere direttamente:
> 
> subprocess.Popen("C:\Windows\System32\dnscmd.exe /EnumZones",  shell=True,...)

no, qui manca ancora la raw string!

  subprocess.Popen(r"C:\Windows\System32\dnscmd.exe /EnumZones",shell=True,...)

forse basta anche

  subprocess.Popen("C:/Windows/System32/dnscmd.exe /EnumZones",  shell=True,...)

che a me pare pił leggibile. 


sandro
*:-)



-- 
Sandro Dentella  *:-)
http://www.reteisi.org             Soluzioni libere per le scuole
http://sqlkit.argolinux.org        SQLkit home page - PyGTK/python/sqlalchemy





Maggiori informazioni sulla lista Python