• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

shell kommandos in python

tuner

Member
hy,

wie kann ich denn in python shell-kommandos ausführen (z.b. last -ad) und die ausgabe in einer Variablen (oder array) speichern?

thx,
toni.
 

TeXpert

Guru
wie wärs, wenn Du Dich mit den Python-Modulen beschäftigst?

hier wäre os sehr sinnvoll...

Code:
import string, os

cmd='ls -l'   				# das soll er tun
count=0					# wir zaehlen mal die Verzeichnisse
for file in os.popen(cmd).readlines(): 	# jetzt jede Zeile abarbeiten
	name = file[:-1]		# chomp ;)
	if 'd' == name[0:1]:		# faengt mit (d)irectory an
		count+=1

print "Habe ", count, " Verzeichnisse gefunden!"
(was popen macht musst Du aber selber lesen..)
 
Ja, aber system() ist doch schon ein Unterschied zu popen(). Ersteres lässt nämlich STDIN, STDOUT und STDERR so, wie sie sind, während popen einige redirected.
 

TeXpert

Guru
system() gehört auch zu os ;) da sollte er also auch drüber stolpern.

system hat zusätzlich aber das Problem, dass es im Prinzip nicht Plattformunabhängig ist -> Pfadtrenner z.B.... hier sollte dann mit os.path.join gearbeitet werden.
 
OP
T

tuner

Member
module beschäftigen, ja.
bin aber sehr blutiger python-anfänger... schreibe mein erstes script.

hab aber auch inzwischen ein anderes modul gefunden
--> http://wiki.python.de/Neue_Features#Subprocess

das die sache auch sehr gut geklärt hat.
 
Oben