Produnis

uninteressant – aber wahr

Impressum

Python-Schnipsel

Geschrieben am: 12.05.2010 von produnis | Druckansicht

Seit ein paar Tagen mache ich meine ersten Gehversuche mit Python. Ich möchte an dieser Stelle ein paar Codeschnipsel posten, für deren Syntax ich ziemlich lange frickeln und googlen musste.

 

dbus

Ich verwende in einem Skript dbus, um den PC in den Ruhezustand zu schicken

#!/usr/bin/env python
#
import dbus

#----------- Fahre in SUSPEND ---------------------------
def GeheSchlafen():
		bus = dbus.SystemBus()
		proxy_object = bus.get_object('org.freedesktop.UPower','/org/freedesktop/UPower')
		pm = dbus.Interface(proxy_object,'org.freedesktop.UPower')
		pm.Suspend()
#-----------------------------------------------------------

print "Fahre nun in Suspend"
GeheSchlafen()

Alternativ kann in der letzten Zeile der GehSchlafen()-Funktion auch pm.Hibernate() o.ä. verwendet werden.

 

Logdatei

Der folgende Codeschnipsel gibt Log-Meldungen sowohl in eine Datei als auch am Promt aus:

#!/usr/bin/env python
#
import logging
log_path = "/home/produnis/MeineLogdatei.log" # hierhin wird geloggt.
#------- Log-File vorbereiten ---------------
logging.basicConfig(filename=log_path,
		    level=logging.INFO,
		    format="%(asctime)s - %(levelname)s: %(message)s")
#--- Promt-Meldungen vorbereiten --------
logger =logging.getLogger("")
logger.setLevel(logging.DEBUG)
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
formatter = logging.Formatter("%(asctime)s - %(levelname)s: %(message)s")
ch.setFormatter(formatter)
logger.addHandler(ch)
#-----------------------------------------------------

# Jetzt wird geloggt:
logger.info("Skript gestartet")
logger.debug("Debugmeldung")
logger.warning("Warnmeldung")

Mehr Infos unter http://docs.python.org/library/logging.html

 

Bash-Befehl-Ausgabe an Variable übergeben

Ich rufe innerhalb meines Python-Scripts einen Bash-Befehl auf. Die Ausgabe des Befehls soll nun an eine Variable innerhalb von Python übergeben werden.
Nehmen wir als Beispiel den Befehl

ps axf | grep gedit

Die passende Python-Funktion würde dann so aussehen:

#!/usr/bin/env python
#
from subprocess import Popen, PIPE
#
	p1 = Popen(["ps", "axf"], stdout=PIPE)
	p2 = Popen(["grep","gedit"], stdin=p1.stdout, stdout=PIPE)
	output= p2.communicate()[0]
	print output

Nehmen wir nun als Beispiel den folgenden Befehl:

netstat -ute | grep -i [s]sh | wc -l

Die passende Python-Funktion würde in etwa so aussehen:

#!/usr/bin/env python
#
from subprocess import Popen, PIPE
#
	p1 = Popen(["netstat", "-ute"], stdout=PIPE)
	p2 = Popen(["grep","[s]sh"], stdin=p1.stdout, stdout=PIPE)
	p3 = Popen(["wc","-l"], stdin=p2.stdout, stdout=PIPE)
	output= p3.communicate()[0]
	output=int(output) # wc -l liefert nen Integer zurueck

 

Timestamp

Folgende Funktion erzeugt einen schicken Timestamp:

#!/usr/bin/env python
import time
#----------- Zeitstempel erzeugen ---------------------------
def TimeStamp():
	stamp=time.strftime("%Y-%b-%d-%H:%M:%S", time.localtime())
	return(stamp)
#-----------------------------------------------------------

stamp=TimeStamp()
print "Datum/Uhrzeit: [%s]" %  (stamp)

 


 

Links

Gepostet in Professor Hastig | Keine Kommentare » | Druckansicht

Hinterlasse Deinen Kommentar!