Seite 1 von 1

Cmd Befehl bestätigen

Verfasst: Dienstag 14. März 2006, 17:21
von Python 47
Hallo Leute,

also ich kann ja folgendermaßen mit cmd arbeiten:

Code: Alles auswählen

import os
os.system(Mein Cmd Befehl)
Aber bei manchen Befehlen fragt mich Cmd ob ich das WIrklich machen muss und muss dann J/N eingeben, wie kann ich das mit Python machen?

Danke!

Verfasst: Dienstag 14. März 2006, 20:10
von Kolazomai
Hi,

Code: Alles auswählen

import os
os.system(cmd | echo <antwort>)
Das mit echo is zwar komisch,sollte aber wirklich funktionieren.

Meistens gibts sogar ein Argument für bestimmte Befehle. Z.b. in batch "del".

Einfach mal suchen.

Verfasst: Dienstag 14. März 2006, 22:14
von Python 47
Danke für die Antwort

Aber warum funktioniert z.B. folgender Code nicht?

Code: Alles auswählen

import os
os.system(del test.txt, echo<J>)

Verfasst: Mittwoch 15. März 2006, 00:15
von modelnine
Warum nicht gleich:

Code: Alles auswählen

os.unlink()
benutzen? Wenn man auf eine Shell zurückgreift bedeutet das im Normalfall nicht das man die richtige Lösung für das Problem gefunden hat... Alles was in der Shell geht, geht auch mit Python direkt (außer man spricht eben keine Betriebssystem-Funktionen an, sondern ein Erweiterungsprogramm was man nicht nachbauen kann/will und was nicht in einer Form zur Verfügung steht die man direkt an Python anbinden könnte), und da man Python programmiert (und keinen Hybrid zwischen Shell und Python und was auch immer) sollte man auch zuschauen dass man es direkt macht...

Sonst, für die wenigen Fälle wo man wirklich drauf angewiesen ist ein externes Programm zu starten (weil Python irgendeine Sache eben nicht direkt kann/macht/was auch immer), benutzt man seit 2.4 subprocess. Siehe entsprechende Dokumentation und die Fülle von Beispielen hier im Forum zu subprocess.

Verfasst: Mittwoch 15. März 2006, 14:24
von Kolazomai
Python Master 47 hat geschrieben:Danke für die Antwort

Aber warum funktioniert z.B. folgender Code nicht?

Code: Alles auswählen

import os
os.system(del test.txt, echo<J>)
mit <antwort> hab ich nur Y oder N oder was er dich halt fragt gemeint ^^

also z.b.

Code: Alles auswählen

import os
os.system("del /s * | echo Y")
sollte gehen ; einfach mal rumprobieren im cmd ^^


Mfg,

Kolazomai

Verfasst: Mittwoch 15. März 2006, 14:32
von Python 47
Perfekt, hat wunderbar geklappt, danke!

EDIT (Jens): Full-Quote gelöscht :evil: