Seite 1 von 1
popen und weiss nicht mehr weiter
Verfasst: Donnerstag 2. August 2007, 08:49
von nix
Code: Alles auswählen
def okbuttonClick(self):
returnValue = self["menu"].getCurrent()[1]
cmd = "mount " + returnValue + " " + "/media/usb"
print PLUGINNAME + cmd
#for file in os.popen(cmd).readlines():
status = os.popen(cmd)
msg = status.readlines()
print PLUGINNAME + "start msg "
print msg
print PLUGINNAME + "ende msg"
ich benutze python 2.5.1 und versuche unter linux zumounten bekomme aber den fehler
mount: Mounting /dev/scsi/host0/bus0/target0/lun0/part2 on /media/usb failed: Invalid argument
nicht in msg
[USBManager] start msg
[]
[USBManager] ende msg
auch die variante brachte mir nur eine leere liste
Code: Alles auswählen
for file in os.popen(cmd).readlines():
msg += file
print msg
hat wer eine idee wo mein denkfehler liegen könnte ?
Verfasst: Donnerstag 2. August 2007, 09:23
von KoenigGunther
Hi! Guck mal hier:
http://pydoc.org/2.4.1/os.html#-popen
Ich denke popen2 wäre das richtige...
Verfasst: Donnerstag 2. August 2007, 10:43
von BlackJack
Oder das `subprocess` Modul.
Verfasst: Donnerstag 2. August 2007, 15:11
von nix
Code: Alles auswählen
(stdout, stdin) = popen2.popen2(cmd)
print "popen2: ", repr(stdout.read())
bringet mich nicht so wirklich ans ziel
[USBManager] mount /dev/scsi/host0/bus0/target0/lun0/part2 /media/usb
popen2: mount: Mounting /dev/scsi/host0/bus0/target0/lun0/part2 on /media/usb failed: Invalid argument
''
jetzt wird halt popen: geprinted und repr(stdout.read()) == ''
Verfasst: Donnerstag 2. August 2007, 16:11
von BlackJack
Da es sich um eine Fehlermeldung handelt wird die wahrscheinlich auf `stderr` ausgegeben und nicht auf `stdout`.
Verfasst: Donnerstag 2. August 2007, 16:35
von nix
Code: Alles auswählen
(stdout, stdin, stderr) = popen2.popen3(cmd)
err = repr(stderr.read())
thx, huhu so klappt das jetzt auch