[Python-de] os.system, backslash, commandline problem

M.-A. Lemburg mal at lemburg.com
Mon Oct 29 10:06:52 EST 2001


> Hallo,
> 
> Ich versuche eine kleine Frontend für eine dos commandline Applikation zu schreiben. Wenn ich os.system verwende um die Commandline Applikation aufzurufen, die "Switches" die ich übergebe werden erkann als Dateien. Dazu habe ich bemerkt das Pfade werden auch nicht richtig behandelt.
> 
> #### code snippet, callback FunKtion für tkinter Button
> 
> def go_app():
> ........textfile = inputfile.get() # inputfile is a tkintet entry widget
> ........textfile = string.replace(textfile, '/', '\\')
> ........editor = editorpath.get()# editorpath is a tkinter entry widget
> ........editor = string.replace(editor, '/', '\\')
> ........editor = editor + " -test" # switch test
> ........os.system(r"%s %s" % (editor, textfile))

Wozu das "r" ? Deine Zeichenkette enthält doch gar keine "\", für die
ein "raw string" nützlich wäre.

> ############## end code
> 
> ich habe diese File ausprobiert, es hat "gefährliche" Zeichen:
> c:\the\boy.txt

Was soll daran gefährlich sein ?
 
> das commandline Applikation wird korrekt aufgerufen aber die Schalter werden nicht erkannt. Die pfad für die wird auch nicht richtig aufgelöst:
> 
>  " theoy.txt "
> 
> Gibt es eine sicherer Methode um commandline Applikation mit Schalter auszuführen mit os.sytem? (z.B "c:\foo.exe -test")

Ich verstehe das Problem nicht ganz... trotzdem: unter Windows ist
es ratsam START.EXE für das Aufrufen von Programmen zu benutzen.
Mit den Win32 Tools von Mark Hammond kann man das noch eleganter
direkt über das win32-API erledigen. Näheres dazu findest Du bei
www.ActiveState.com.

-- 
Marc-Andre Lemburg
CEO eGenix.com Software GmbH
______________________________________________________________________
Consulting & Company:                           http://www.egenix.com/
Python Software:                        http://www.lemburg.com/python/




More information about the Python-de mailing list