Hallo miteinander,
letztens hatte ich die Diskussion mit einem Kollegen welche Sprache
mächtiger ist:
Tcl oder Python.
Da ich Tcl zuvor nur vom Hörensagen kannte, und nichts weiter wusste
als dass in Tcl alle Variablen Strings sind, war ich sehr überrascht
als dieser mir zeigte wie elegant manche Dinge gemacht werden konnten.
Jedenfalls fand ich den Tcl 'trace' Befehl unglaublich bemerkenswert,
der es u.a. möglich macht das Verhalten einer Variablen in bestimmten
Situationen komplett zu steuern, und zwar indirekt.
Man kann z.B. eine Funktion schreiben die immer dann ausgeführt wird,
wenn diese eine Variable (die vorher natürlich bekannt sein muss, also
zuvor definiert sein muss) irgendwo eingelesen wird.
D.h. muss ein Statement die Variable x - oder besser deren Value -
lesen, so wird direkt vor dieser Operation die mit trace registrierte
selbst geschriebene Funktion aufgerufen, die dann z.B. eine Warnung
nach stdout ausspucken kann.
Ein Vergleichsfeature in Python fiel mir daraufhin nicht ein, ich
hatte nur die spezielle Methode __getattr__ im Kopf und den
property(...) Mechanismus, aber das Problem bei ihnen ist, dass sie
1.) nicht eine bestimmte Variable unter die Lupe nehmen können und 2.)
nur für Attribute einer Klasse gelten.
Gibt es überhaupt soetwas in Python und wenn ja wie heißt die Funktion
dazu? (ich hoffe, ich habe nichts offensichtliches übersehen)
--
Best Regards
Christian Junker
_______________________________________________
python-de maillist - python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Ahoi!
Was mache ich unter Windows statt os.kill(pid)?
Ich muss einen COM-Server (Adobe Distiller) umbringen, weil ich ihn nur ansprechen kann, wenn ich ihn selber starte (vielleicht mache ich auch da was falsch).
Und wenn meine Distiller-Steuerung sich beendet, läuft der COM-Server noch, und ein zweiter Versuch ist erst möglich, wenn ich den Prozess im Taskmanager beendet habe.
Grüße vom Südsee!
Henning Hraban Ramm
Südkurier Medienhaus / MediaPro
Systembetreuung / Systementwicklung
_______________________________________________
python-de maillist - python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Ich befinde mich vom 16.08.2005 bis einschließlich 02.09.2005 im Urlaub. Eingehende eMails werden nach meiner Rückkehr bearbeitet. Bei dringenden Fragen wenden Sie sich bitte an:
I will be away on holiday from 08/16/2005 through 09/02/2005. Incoming eMails will be processed after my return. Should you have any urgent questions, please contact:
Thomas Rothenbach
Fon: +49 (0)9372 / 132 - 623
Fax: +49 (0)9372 / 132 - 9976
eMail: t.rothenbach(a)wika.de
Mit freundlichen Grüßen
Regards
Frank Wagner
_______________________________________________
python-de maillist - python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Ich habe ein sporadisches Problem mit der Funktion
self.wm_geometry("+%d+%d" % (0,0)) zur Platzierung eines Windows.
Manchmal plaziert TK/Window-Manager das Fenster nicht in die obere Ecke, sondern irgendwo
in die Mitte. In der Regel funktioniert es richtig.
Es scheint , daß hier ein Fehler in TK bzw. im Window-Manager von Windows vorliegt ! ?
Kann mir jemand helfen ?
Achim
_______________________________________________
python-de maillist - python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Ab Python 2.3 kann man ja mit socket.setdefaulttimeout(1) einen Timeout
auch für urllib "setzten". Leider hab ich auf dem Server nur Python 2.2.x :(
Ich brauche aber auch dafür einen Timeout bei einem urllib.urlopen()...
Nun hab ich mir gedacht, das man es mit threading machen könnte:
===========================================================
import urllib, threading
class urlopen(threading.Thread):
def __init__( self, url, timeout ):
self.url = url
threading.Thread.__init__(self)
self.start()
self.join( timeout )
self.stop()
def run(self):
self.u = urllib.urlopen( self.url )
def stop( self ):
print "soll gestoppt werden..."
print "Starte..."
page = urlopen( "http://192.168.0.0", 1 )
print "OK"
===========================================================
Aber wie kann ich einen blockierten urlopen() bei stop() anhalten???
_______________________________________________
python-de maillist - python-de(a)python.net
http://python.net/mailman/listinfo/python-de
>Gibt es überhaupt soetwas in Python und wenn ja wie heißt die Funktion
>dazu? (ich hoffe, ich habe nichts offensichtliches übersehen)
Man könnte statt einer Variable natürlich immer einen Funktionsaufruf verwenden:
nr = os.getpid
nr()
nr = meine_funktion
nr()
Das deckt natürlich nur einen Teil der Möglichkeiten ab.
Ein anderer Weg wären Objekte mit überschriebenen __bla__-Methoden.
Seit man auch von Standardklassen (str, dict usw.) erben kann, ist das wunderbar mächtig.
Grüße vom Südsee!
Henning Hraban Ramm
Südkurier Medienhaus / MediaPro
Systembetreuung / Systementwicklung
_______________________________________________
python-de maillist - python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Hallo zusammen!
Mit dem anhängenden Skript, abgeschaut von win32pdhutil.py, bekomme ich die laufenden Prozesse unter Windows.
So weit, so gut.
Wenn ich GetAllProcessIDs() aber von einem anderen Skript aus aufrufe, bekomme ich immer nur die Prozesse, die vor diesem Skript gestartet wurden (inklusive dem eigenen). Das macht es zur Überwachung laufender Prozesse ziemlich ungeeignet, aber genau das brauche ich.
Was mache ich falsch, oder wie lässt sich das lösen (außer ein externes Programm wie pulist aufzurufen)?
Grüße vom Südsee!
Henning Hraban Ramm
Südkurier Medienhaus / MediaPro
Systembetreuung / Systementwicklung
_______________________________________________
python-de maillist - python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Hallo, allerseits,
ich habe ein paar Kommandozeilentools geschrieben, die das
optparse-Modul verwenden. Nun haben sich die Optionen (viele
optionale...) so stark vermehrt, daß eine Gruppierung angebracht
scheint. Nach einiger Sucherei und stochern im Nebel: Kann mich jemand
erleuchten, wie das funktionieren soll? Der Source des Moduls ist ja
recht undurchsichtig...
Schönen Dank auch!
Tobias
_______________________________________________
python-de maillist - python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Guten Tag
Ich bin Anfänger und möchte Python lernen. Habe bereits die Site "Python für Kids" angeschaut und komme mit den Grundlagen recht gut zurecht. Habe mich bereits auch mit Tkinter befasst und schon ordentliche Fenster hingekriegt.
Nun meine Frage: Wie krieg ich das am besten zusammen, möchte die Beispiele am liebsten jeweils mit Fenstern testen, habe aber meine liebe Mühe mit dem speichern der Eingaben in den Fenstern in Dateien und wieder einlesen der Infos in die Fenster. Wer kann mir einen Tipp geben, wie ich da am besten vorgehen soll?
Besten Dank
Markus Schmid
_______________________________________________
python-de maillist - python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Hi *,
ich hänge hier an einem etwas lästigen Problem in einem Druckfilter, der
intern mit unicode arbeitet, und an den IO Grenzen passend
de/encodiert..
Als Option gibt's die Möglichkeit, das Ganze durch a2ps zu schleusen,
wobei die Ausgabe dann in einer temp. Datei utf8 kodiert geparkt wird.
Weil die Druckdaten auch noch Liniengrafik enthalten, muß ich bei der
Ausgabe von utf8 nach cp850 wandeln, damit a2ps etwas damit anfangen
kann. Aus Effizienzgründen verarbeite ich ganze Blöcke (BLOCKSIZE =
8192):
pcmd = \
'a2ps -q -%sB -l%s --borders=no --encoding=ibm-cp437 -o-' % (
self.a2ps, cpl)
pfp = os.popen(pcmd, 'w')
if pfp:
while True:
data = self.a2psfile.read(BUFSIZE)
if not data:
break
data = data.decode('utf8').encode('cp850')
pfp.write(data)
else:
err("failed to open a2ps pipe")
Das funkt ja auch ganz gut, außer wenn jetzt dummerweise genau auf der
Blockgrenze ein multibyte Zeichen liegt, geht das Ganze in die Hose:
internal error: Traceback (most recent call last):
File "/usr/bin/lpf", line 1421, in ?
ret = lpf.run()
File "/usr/bin/lpf", line 1309, in run
self.lpr.close()
File "/usr/bin/lpf", line 1007, in close
data = data.decode('utf8').encode('cp850')
File "/usr/lib/python2.4/encodings/utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xe2 in position
8191: unexpected end of data
So, wie die Sache steht, bleibt mir wohl nix anderes übrig, als auf
zeilenweise Verarbeitung auszuweichen, oder hat jemand eine bessere
Idee?
Pete
_______________________________________________
python-de maillist - python-de(a)python.net
http://python.net/mailman/listinfo/python-de