hvordan man skriver ind i et windows kommandovindue fra python

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg bruger Python 2.6
Jeg vil gerne indtaste instruktioner i et kommandovindue fra python.
Jeg har bare brug for den rigtige metode. Men som en indikation viser jeg flere fejlagtige forsøg.
Her er flere forsøg og de fejltyper, jeg får:


første forsøg


import subprocess
proc = subprocess.Popen('cmd.exe', stdin = subprocess.PIPE, stdout = subprocess.PIPE)
stdout, stderr = subprocess.communicate('cd Documents')
AttributeError: 'module' object has no attribute 'communicate'


Andet forsøg:


import subprocess
proc = subprocess.Popen('cmd.exe', stdin = subprocess.PIPE, stdout = subprocess.PIPE)
proc.stdin.write("cd Documents")


Ingen fejlmeddelelse, men der sker ikke noget. Jeg prøver at åbne en mappe, der ikke eksisterer, jeg får det samme. Kommandofoljen forbliver tom


Tredje retssag:


os.system('cd Documents')


Intet sker, det returnerer 1, men hvis jeg forsøger at åbne en mappe, der ikke eksisterer, returnerer den også 1:


os.system('cd Documentss')


Sidste retssag


a=os.popen("C:\system32\cmd.exe",'w')
a.write("cd Documents")
IOError: [Errno 22] Invalid argument


Tak for din hjælp

Bedste reference


Din første prøve er korrekt, bortset fra at du 'ringer modulet i stedet for din nyoprettede klasse. Du skal bruge


proc.communicate('cd Documents')

Andre referencer 1


Din tredje prøve:


 os.system('your command')


arbejder. Jeg brugte og det er ok:


os.system('ipconfig -renew') # Renew all connections windows


Prøve:


os.system('ipconfig -release') # you will disconnect from your network


Brug derefter:


os.system('ipconfig -renew') # network will back