Aller au contenu Aller au menu
  • Dépêches
  • Journaux
  • Liens
  • Forums
  • Rédaction
  • 🎙️ Projets Libres

LinuxFr.org

Se connecter

Proposer un contenu

  • Pas de compte ? S’inscrire...

Bufferiser soi-même, ou laisser l'OS faire

Retourner au contenu associé (entrée de forum : écrire la sortie d'un générateur)

  • # Bufferiser soi-même, ou laisser l'OS faire

    Posté par benoar le 02 juillet 2013 à 01:09. En réponse au message écrire la sortie d'un générateur. Évalué à 3.

    Je vois deux solutions :

    1) Utiliser un StringIO, que tu remplies de X caractères, et que tu écris régulièrement dans ton fichier, genre

    import io
    s = io.BytesIO()
    for c in gen():
     for i in range(4096):
     s.write(c)
     f.write(s)
     s.truncate(0)
    

    cf http://docs.python.org/3.0/library/io.html#io.BytesIO (je suppose que ce sera plutôt des bytes que des caractères que tu écriras)
    C'est un peu équivalent à la solotion proposée par BFG.

    2) Mapper le fichier en mémoire, et écrire directement les caractères dans ce tableau :

    import mmap
    mm = mmap.mmap(f.fileno, 1000000)
    for i, c in enumerate(gen()):
     mm[i] = c
    f.flush()
    

    cf http://docs.python.org/3/library/mmap.html

Revenir en haut de page

Derniers commentaires

  • Re: cé koréan
  • Re: Détails
  • Re: Détails
  • Re: A ce propos...
  • Pour économiser et limiter l'empreinte, il faudrait réduire le PDF en compressant (au moins 75%)
  • Re: Le doux son crachotant du poste à galène
  • Oui mais
  • Re: Déjà vu
  • cé koréan
  • Re: Encore un journal généré par un LLM...
  • Moi!
  • Re: Encore un journal généré par un LLM...

Étiquettes (tags) populaires

  • intelligence_artificielle
  • le_monde_diplomatique
  • merdification
  • grands_modèles_de_langage
  • états-unis
  • canicule
  • capitalisme
  • réchauffement_climatique
  • datacenter
  • logiciel_libre
  • france
  • administration_française

Sites amis

  • Agenda du Libre
  • April
  • Éditions D-BookeR
  • Éditions Diamond
  • Éditions Eyrolles
  • Éditions ENI
  • En Vente Libre
  • Framasoft
  • La Quadrature du Net
  • Lea-Linux
  • Open Source Initiative
  • Imprimerie Grafik Plus

À propos de LinuxFr.org

  • Mentions légales
  • Faire un don
  • L’équipe de LinuxFr.org
  • Informations sur le site
  • Aide / Foire aux questions
  • Suivi des suggestions et bogues
  • Wiki du site
  • Règles de modération
  • Statistiques
  • API pour le développement
  • Code source du site
  • Plan du site

AltStyle によって変換されたページ (->オリジナル) /