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