popen und weiss nicht mehr weiter

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
nix
User
Beiträge: 4
Registriert: Donnerstag 2. August 2007, 08:34

Donnerstag 2. August 2007, 08:49

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 ?
KoenigGunther
User
Beiträge: 22
Registriert: Donnerstag 19. April 2007, 10:05

Donnerstag 2. August 2007, 09:23

Hi! Guck mal hier:
http://pydoc.org/2.4.1/os.html#-popen
Ich denke popen2 wäre das richtige...
BlackJack

Donnerstag 2. August 2007, 10:43

Oder das `subprocess` Modul.
nix
User
Beiträge: 4
Registriert: Donnerstag 2. August 2007, 08:34

Donnerstag 2. August 2007, 15:11

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()) == ''
BlackJack

Donnerstag 2. August 2007, 16:11

Da es sich um eine Fehlermeldung handelt wird die wahrscheinlich auf `stderr` ausgegeben und nicht auf `stdout`.
nix
User
Beiträge: 4
Registriert: Donnerstag 2. August 2007, 08:34

Donnerstag 2. August 2007, 16:35

Code: Alles auswählen

		(stdout, stdin, stderr) = popen2.popen3(cmd)
		err = repr(stderr.read())
thx, huhu so klappt das jetzt auch
Antworten