Hi Sorry, dass ich erst jetzt antworte, aber ich war in den letzten Tagen etwas zu tief in meinem Projekt eingetaucht. Am 22.04.2004 14:32:57 schrieb Georg Mischler:
Auch unter unix wird dir "ls" eine 1MB grosse Datei anzeigen. Mit "du" siehst du aber, dass sie physikalisch nur einen einzigen Block belegt (512-4096k, je nach Grösse des Dateisystems). Sobald du um unteren Bereich etwas reinschreibst, wird das Dateisystem die dazu notwendigen Blöcke ebenfalls allozieren.
Aber genau das tu ich ja mit dem file.write('.'). Das braeuchte ich dann also unter Unix gar nicht und ls wuerde trotzdem eine Groesse von 1MB anzeigen? Windows alloziert die Bloecke auch erst, wenn man etwas in die Datei schreibt, aber davor ist die Datei 0 Byte gross (also auch nach dem file.close()). Sorry das ich so bloed frag, aber ich kann das hier nicht selber testen.
Es is theoretisch möglich, dass moderne Windows Dateisysteme (NTFS) so etwas auch unterstützen, aber ich habe keine Ahnung, wie man dort den Unterschied feststellen könnte.
So wie ich das sehe, haengt unter Windows die Dateigroesse immer von der Zahl der allozierten Bloecke ab.
Also die Daten gehoeren schon zu einer Datei.
Warum?
Dazu muss ich etwas weiter ausholen. Ich schreibe im Rahmen meiner Studienarbeit ein P2P-System. Ich hab eine zentrale Struktur aehnlich wie Napster gewaehlt - es gibt einen Server, Peers und Clients. Die Peers teilen dem Server mit welche Teile (genau diese 1MB grossen Bloecke) von welchen Dateien sie gespeichert haben. Der Client fragt beim Server nach einer bestimmten Datei und teilt diesem mit, welche Bloecke er bereits hat. Der Server entscheidet dann nach verschiedenen Kriterien, welche Bloecke der Client als naechstes von den Peers laedt. Der Client bekommt also auf die Anfrage eine Liste von Bloecken und dazu passend eine Liste von Peers, welche die Bloecke jeweils gespeichert haben. Wenn der Client diese Bloecke komplett hat, schreibt er sie auf Platte und bietet sie wiederum selbst als Peer an. Deswegen gehoeren die Bloecke zu einer Datei und deswegen ist die Reihenfolge, in welcher die Bloecke eintreffen, nicht festgelegt. Und aus diesem Grund will ich auch nicht wirklich x Dateien fuer eine Datei haben. Und einen Index fuer die Dateien brauch ich sowieso, weil ich noch ein paar zusaetzliche Infos benoetige, die in einem shelve gespeichert werden.
Das musst du ausprobieren, aber für eine letzten Endes lineare Sequenz von Datenblöcken scheint mir das Overkill zu sein.
Jup, da hast du wohl recht cu boesi -- baka baka #1671 : icq-intern #73628288 : icq-extern boesi111 : aim i171 : reallife _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de