[Python-de] FileLight in Python + Tk

markus langer langer.markus at gmail.com
Do Jul 3 18:02:57 UTC 2008


ich kenn mich ja selber nicht aus,aber interressant wäre sicher wenn
du die gui und die nicht gui sachen in threads realisierst.

Am 03.07.08 schrieb Mathias Uebel <mathias.uebel at meeloon.de>:
> Stefan Schwarzer schrieb:
> Hallo Stefan,
>
>> da sich sonst keiner erbarmt ;-)
> Herzlichen Dank für Dein Erbarmen. Im Ernst, ich bin dankbar, wenn ich
> partizipieren darf.
> Mittlerweise habe ich schon eine weitere Version hier abgelegt:
> http://www.meeloon.de/index-0-3-29.html
> UserGroup: Ich bin aufs Land gezogen. ;-(
>
> [...]
>
>>> 	from math import *
>>
> Das kommt eh raus, da ich die Kreisberechnung nicht mehr brauche. Aber
> der Hinweis im Allgemeinen ist richtig und werde ich beherzigen.
>>
> [...]
>>> except:
>>> 	print """Folgenden Module sind unbedingt erforderlich: ... """
>>> 	sys.exit(1)
>>
>> Das Abfangen von Exceptions allein mit except solltest du
>> tunlichst vermeiden. [...]
>
> Ja stimmt. Ich gebe zu, das sollte im Nachhinein passieren. Habe ich
> aber versäumt.
> [...]
>>> lcmp = lambda idx: lambda b, a: (a[idx] < b[idx]) and -1 or (a[idx] >
>>> b[idx]) and 1 or 0
>>
>> Sieht meiner Ansicht nach schon "obfuscated" aus. ;-) Ich
>> würde eine längere aber lesbarere Funktion bevorzugen.
> Stimmt auch. Eine _ordentliche_ Funktion ist lesbarer.
>>
>>> def HumanValue(value):
>>> 	"""human-readable Values"""
>>
>> Hauptwörter schreibt man im Englischen klein. Ein paar
>> Ausnahmen sind Eigennamen, Himmelsrichungen und Jahreszeiten
>> (unter bestimmten Bedingungen).
> Ohne Worte ...
>>
>>> 	if value > 1024 * 1024 * 1024:
>>> 		return "%d GB" % (value / 1024 / 1024 / 1024)
>>> 	if value > 1024 * 1024:
>>> 		return "%d MB" % (value / 1024 / 1024)
>>> 	if value > 1024:
>>> 		return "%d KB" % (value / 1024)
>>> 	return "%d B" % value
>>
>> Hier gefällt mir gut, dass du die Vielfachen von 1024 deutlich
>> als solche hinschreibst statt Werte wie 1048576 zu verwenden.
> Danke.
>>
>>> class PathWalk(object):
>>> 	"""walk the path recursiv and add the filesize"""
>>> 	def __init__(self, POINT=os.environ['HOME']): #getcwd()):
>>> 		self.POINT = POINT
>>
>> Warum die eigenwillige Schreibung mit Großbuchstaben für ein
>> Attribut? Such mal nach PEP 8, dem Python Style Guide.
> Das schaue ich mir an! Versprochen.
>>
>>> 		self.oldPOINT = ""
>>> 		self.Action()
>>>
>>> 	def Action(self):
>>> 		"""walk the File tree"""
>>> 		# only if is a new access
>>> [...]
>>
>> Ich gebe zu, dass ich mir das jetzt nicht im Detail angeschaut
>> habe, aber ich würde erwarten, dass du hier mehr mit os.walk
>> machen könntest. Denk daran, dass du die durch den Iterator
>> zurückgegebenen Listen "in-place" verändern kannst (siehe
>> Python-Dokumentation).
> Habe ich gemacht. Denke ich jedenfalls.
>>
>>> 	def FileListFiles(self):
>>> 		self.FILELIST_files.sort(cmp=lcmp(0))
>>
>> Verwende am besten das Schlüsselwort-Argument key statt cmp.
> Schau ich mir in der Doku an.
> [...]
>>
>> Den Namen FileSumme finde ich nicht sehr intuitiv. Außerdem
>> würde man in Python-Code eher file_summe schreiben. Hm, wenn
>> du versuchst, alles auf Englisch zu schreiben, warum nicht
>> "sum" statt "summe"?
> Ja, ich muss mir in Sachen Bezeichnungen besser vorher einen Plan machen.
>>
>>> 	def Paint(self):
>>> 		"""Action"""
>>
>> Kein sehr aussagekräftiger Docstring. ;-)
> Richtig, kommt noch.
>> Warum rechnest du hier mit zwei verschiedenen Winkelmaßen?
>> 360 Grad und 2*Pi sind doch äquivalent.
> Wie oben geschrieben: Es sind Altlasten. Ich wollte den Kreis rundrum
> beschriften.
>
>>> 			c += 1
>>> 			# if end of color list: beginn the list
>>> 			if c == 24: c = 0;
>>
>> Das Semikolon brauchst du nicht.
>>
>
> Danke nochmal. Bis die Tage.
>
> Mathias
>
> _______________________________________________
> python-de maillist  -  python-de at python.net
> http://python.net/mailman/listinfo/python-de
>



Mehr Informationen über die Mailingliste python-de