[Python-de] os.system unter windows2000, problem

CCF.Herzog at gmx.net CCF.Herzog at gmx.net
Mon Jul 16 18:29:26 EDT 2001


Hallo, 
ich kann nicht verstehen, warum ich folgendes Verhalten 
bekomme, d.h meiner Meinung nach müssten, alle drei
Aufrufe von os.system funktionieren, tatsächlich tut aber nur der 
letzte:
#---------------------------------------------------
import os
a = "C:\\test.htm"
f = open(a, "w")
f.close()
b = "C:\\Kopie von test.htm"
f = open(b, "w")
f.close()

c = '"C:\\Programme\\Microsoft Office\\Office\\WINWORD.EXE" '
x = c + '\"%s\"' % b
y = c + '\"%s\"' % a
z = c +  a

print x
print y
print z 
print os.system(x)
print os.system(y)
print os.system(z)
#------------------------------------------------------
Als Ausgabe von obigem erhalte ich:
>>> 
"C:\Programme\Microsoft Office\Office\WINWORD.EXE" "C:\Kopie 
von test.htm"
"C:\Programme\Microsoft Office\Office\WINWORD.EXE" 
"C:\test.htm"
"C:\Programme\Microsoft Office\Office\WINWORD.EXE" 
C:\test.htm
1
1
0

Mit anderen Worten: nur der Aufruf os.system(z) funktioniert, die 
anderen nicht, obwohl sie auf der Befehlszeile in der DOS-Box 
valide Eingaben sind. (Es nützt übrigens auch nichts, bei 
"C:\\Kopie von test.htm" die Anführungszeichen im Aufruf 
wegzulassen, Word wird dann zwar gestartet, aber das Dokument 
nicht gefunden)
Es geht anscheinend mit dem Aufruf von os.system nicht, zwei 
Strings mit Anführungszeichen zu verknüpfen. Die 
Anführungszeichen werden aber benötigt, um cmd.exe mitzuteilen, 
daß die blanks Bestandteil der Pfade und keine Trennzeichen sind. 
Mit os.popen() sieht es im übrigen, wenn ich recht sehe, genauso 
aus. Was mache ich da falsch?
Für Hilfe wäre ich wirklich dankbar
Christoph



More information about the Python-de mailing list