Diskussion:Python unter Linux: Dateien

Aus Wikibooks
Zur Navigation springen Zur Suche springen

Binärdateien (erledigt)[Bearbeiten]

Hallo zusammen!

Ich bin recht unglücklich über diesen Abschnitt. Er ist nicht gegliedert, hat keinen sinnvollen Aufbau, und "wie es scheint kann man..." passt nicht in das Buch. Vielleicht erklärt sich jemand bereit, den Abschnitt zu ändern.

  • Es gibt unter Linux zeichen- und blockorientierte (Geräte-)Dateien, jedoch keine Binärdateien.
  • Das Flag "b" ist unter Linux und unixähnlichen Betriebssystemen (um die geht es hier) total überflüssig
  • Die Beispiele finde ich von der Idee her gut, aber da geht noch mehr ;-)
  • Bitmap-Dateien (.bmp) könnten "Dateien mit strukturiertem inneren Aufbau" heißen, "Binär" sind sie aber genau so wie Textdateien.
  • Deshalb passt weder die Überschrift, noch viel vom Text.

Wenn den Abschnitt niemand ändert, werde ich es im Mai tun. -- Tandar(D, B) 17:40, 15. Apr. 2009 (CEST)

Ich denke, man sollte sich an http://docs.python.org/library/functions.html#open orientieren. Da wird durchaus betriebssystemübergreifend von "binary files" gesprochen und empfohlen, beim Öffnen solcher Dateien 'b' anzugeben, und sei es nur aus dokumentarischen Gründen. Ich meine, auch wenn vorne auf dem Buch hier "Linux" draufsteht, findet sich ja faktisch nichts Linux-spezifisches (bmp ist ja nun ein klassisches Windows-Format) und somit ist es auch für Nicht-Linuxer interessant - oder wird es vielleicht sein, wenn es fertig ist. --84.131.150.146 18:03, 15. Apr. 2009 (CEST)
Das Buch ist faktisch fertig (bis auf wenige Stellen, dazu gehört auch diese) und für Linuxer nutzbar. Das Buch richtet sich ausdrücklich an Linux- und Unix-Nutzer. Dass ich hier faktisch nicht Linux-spezifisches findet stimmt nicht. Lies nochmal die Kapitel. Es gibt (Anm: gab) aber ebenfalls das Buch Python-Programmierung. Dort freut man sich, ebenso wie hier auch, über Leute, die etwas zum Thema schreiben möchten. Windows Binärformate gehören hier nur rein, wenn sie für Unix-Entwickler nutzbringend sind. Notfalls schmeiße ich diesen Abschnitt heraus. Das passt alleine schon von den dort gesetzten Links nicht in die Struktur des Buches. -- Tandar(D, B) 19:04, 15. Apr. 2009 (CEST)
Diesen Widerwillen gegenüber dem Binary Mode verstehe ich nicht. Unter Linux zu entwickeln heißt ja nicht, ausschließlich für Linux zu entwickeln. Im Gegenteil sollte gerade bei Python das Ziel Portabilität sein. Wer ein Modul zur Auswertung/Bearbeitung von z.B. Bitmap-Dateien schreibt, will auch, dass das Modul portabel ist und muss wissen, dass es nicht überall läuft, wenn die Datei nicht im Binary Mode geöffnet wird. Was der Python-Doku recht ist, sollte diesem Buch billig sein.
Zu dem anderen Pythonbuch: Das Buch ist eine Ruine. Da wird seit Jahren und auch gerade jetzt wieder konzept- und kompetenzlos rumgefrickelt. Die Edits der letzten Wochen, vor allem der Versuch Version 3 zu berücksichtigen, dürften entgültig dem Buch den Rest geben.
Warum also in diesem Buch hier auf die riesige Zahl an Nicht-Linuxern verzichten? Linux-spezifisches muss man sehr lange suchen. Da wird /etc/passwd und /etc/group eingelesen, aber eher um zeilenweises Einlesen und und dem Umgang RegExps zu demonstrieren, weniger als Hilfe beim Umgang mit Linux (Apache-Logfiles wären z.B. eine Alternative). Die Seite "Netzwerke" vermeidet komplett jedes interessante Linux-Thema. Ok, Curses ist klar ein Linux, QT4 weiß nicht. Also, jemand, der angesichts des Buch-Titels hoffte, hier etwas zu lernen, was den Umgang mit Linux vereinfacht, wird klar enttäuscht (ok, muss ja nicht gleich sowas ISBN 9780596515829 sein), und Nutzer anderer OSs lesen das Buch gar nicht erst. Naja, nur meine Gedanken.--84.131.150.2 08:34, 16. Apr. 2009 (CEST)
Warum dieses Buch auf Nicht-Linuxer verzichtet? Weil ich es bestimmt habe, als ich die Projektdefinition schrieb. So einfach ist die Sache. Der Erfolg gibt mir Recht. Weil ich den Nutzerkreis und Themenumfang beschränke, bin ich mit dem Buch da, wo ich jetzt bin. Gerne kann jemand ein allgemeines Buch zum Thema schreiben, bei dem ich auch gerne mithelfe. Dieses Buch wird vermutlich aber auch von Nicht-Linuxern gelesen. Die überlesen dann einfach die Stellen, wo ich Linux-spezifische Sachen einfließen lasse. ;-)
Apache-Logfiles lese ich gerne mit Python, kann aber nicht voraussetzen, dass unsere Leser Apache installiert haben. Ich zeige, wie es gehen könnte und nehme deswegen leichter zugängliche Dateien. Das andere Python-Buch ist eines, bei dem man sich gut beteiligen kann. Dieses Buch hier ist weiter fortgeschritten und verfolgt einen anderen Ansatz, deswegen ist es aber nicht besser. Insbesondere nicht besser für Windows-Nutzer. ISBN 9780596515829 hatte ich selbst noch nicht in der Hand, aber ich stelle mir so etwas schon für dieses Buch vor. Wenn du beim Thema "Netzwerke" Vorschläge hast, dann stelle sie ruhig ins ToDo oder arbeite sie -nach Linux-Art- aus.
Wie auch immer, mit dem Abschnitt "Binärdateien" bin ich unzufrieden. Nicht wegen des kleinen bs, sondern wegen seines grundsätzlichen Aufbaus der nicht in das Buch passt. Wenn sich niemand sonst bereit erklärt, diesen Abschnitt dem Buch anzupassen, dann werde ich das tun (was bleibt mir anderes übrig?). Beliebig viel Zeit zu Diskutieren habe ich da auch nicht. -- Tandar(D, B) 09:26, 16. Apr. 2009 (CEST)
  • Fertig :-) Hoffe, es gefällt euch so. Wenn etwas fehlt, dann ergänzt es bitte. -- Tandar(D, B) 13:45, 5. Mai 2009 (CEST)

Fehler beim Programmabschnitt mit den Lottozahlen?[Bearbeiten]

Das Programm beginnt mit datei = open("/dev/random", "r") Fehlt am Ende dann nicht datei.close() ? gruß Franky

Ist hier nicht zwingend nötig. Da es aber bei allen Beispielen sonst dabei ist, ergänze ich es mal. --84.131.162.224 19:16, 30. Jan. 2010 (CET)

Besser /dev/urandom bei Lottozahlen?[Bearbeiten]

Im Lottozahlenbeispiel für zeichenorientierte Dateien wird /dev/random als Zufallsquelle genommen. Ich würde hier /dev/urandom vorziehen, da es nicht blockiert, falls der Zufall "ausgegangen" ist und es in diesem Beispiel sicher nicht auf hohe Zufallsqualität ankommt. 134.169.34.62 18:24, 18. Feb. 2010 (CET)