Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.python > #4905

Re: [Python-de] Concatenierte Dateien?

From Stefan Behnel <python-de@behnel.de>
Newsgroups de.comp.lang.python
Subject Re: [Python-de] Concatenierte Dateien?
Date 2017-09-08 07:38 +0200
Message-ID <mailman.8.1504849328.15585.python-de@python.org> (permalink)
References <87mv66sea9.fsf@gmx.net> <5c49da01-07c7-58aa-afe0-90d4549df7a2@behnel.de>

Show all headers | View raw


Hallo Ole!

Оlе Ѕtrеісhеr schrieb am 07.09.2017 um 17:45:
> gibt es eine einfache ("batteries included") Möglichkeit, eine Liste von
> file like objects als ein einziges file like object (zum Lesen) zu
> behandeln? So dass für die ersten bytes das erste Object verwendet wird
> etc.?
> 
> Hintergrund: Ich habe eine Liste von "memoryview"-Objekten, (und
> "String"-Objekten), die recht groß (>>1GB) sind (und aus einem
> memory-mapped file stammen), und die zusammengefügt ein "file like
> object" ergeben sollen.

Ist mir nicht bekannt, und "schnell mal suchen" hat irgendwie auch nichts
gebracht. Nicht einmal in den ActiveState Python Rezepten, die bei solchen
Dingen oft recht gut sind.

Denke aber mal, dass es gar nicht so kompliziert wäre, das selbst zu
schreiben. Gibt die üblichen Sonderfälle zu beachten an den
Dateiübergängen, aber da .read() es erlaubt, weniger Daten zurückzuliefern
als angefragt, sollte auch das nicht allzu komplizert sein.

Klingt für mich nach einem interessanten "Freude-am-Programmieren"-Projekt,
das es verdient hätte, auf PyPI aufzutauchen. :)


> Und wie würde man aus deinem memoryview effektiv die einzelnen Bytes
> bekommen? meoryview.tobytes() erstellt ja offenbar eine Kopie, was nicht
> sehr effektiv ist.

Slicen. Von den Strings würde ich auch erst explizit einen Memoryview
erzeugen, damit du einfach alles effizient und ohne Kopie heraus schneiden
kannst. Der Standardanwendungsfall für deine Klasse wäre ja genau der Fall,
dass die Datenmenge zu groß ist, um einfach alles im Speicher aneinander zu
hängen.

Überhaupt solltest du dir überlegen, ob ein einfaches Slicing-Interface
nicht einfacher (und hübscher?) wäre als ein File-Interface. Allerdings
müsstest du dann Schnittdaten mit der exakten Größe zurückgeben. Kannst ja
mal beides probieren. :)

Stefan

Back to de.comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Concatenierte Dateien? ole-usenet-spam@gmx.net (Оlе Ѕtrеісhеr) - 2017-09-07 17:45 +0200
  Re: [Python-de] Concatenierte Dateien? Stefan Schwarzer <sschwarzer@sschwarzer.net> - 2017-09-07 18:12 +0200
    Re: [Python-de] Concatenierte Dateien? ole-usenet-spam@gmx.net (Оlе Ѕtrеісhеr) - 2017-09-07 18:26 +0200
  Re: Concatenierte Dateien? Hermann Riemann <nospam.ng@hermann-riemann.de> - 2017-09-08 03:27 +0200
  Re: [Python-de] Concatenierte Dateien? Stefan Behnel <python-de@behnel.de> - 2017-09-08 07:38 +0200
  Re: [Python-de] Concatenierte Dateien? Dinu Gherman <gherman@darwin.in-berlin.de> - 2017-09-08 08:00 +0200

csiph-web