IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

insertion/modification d'une ligne dans un fichier


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2024
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Janvier 2024
    Messages : 87
    Par défaut insertion/modification d'une ligne dans un fichier
    bonjour
    j'ai besoin d'insérer ou de modifier une ligne dans un fichier.
    Existe-t-il une fonction ou une méthode qui fasse ça avec un argument du genre "numéro de ligne" ?

    Je ne trouve pas la réponse.
    merci

  2. #2
    Membre Expert Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 452
    Par défaut
    Bonjour,
    Pour mes petits besoins perso, jusqu'à présent je codais en Perl.
    Je passe un peu à Python, par obligation, car de vieux modules Perl ne sont plus portés dans les nouvelles versions...
    Mais la syntaxe de Python est tellement étendue, que plutôt que de rechercher dans la doc Python, je passe par ChatGpt.
    Il n'est même pas nécessaire de se connecter, voici ce que ça donne, c'est époustouflant

    Bonjour humain, je suis un chatbot IA, modèle GPT-4.1 nano.

    En python, comment se positionner sur une ligne dont on connaît quelques mots ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    Bonjour ! En Python, pour se positionner sur une ligne spécifique en utilisant quelques mots clés ou une partie du texte, vous pouvez utiliser la méthode
    find()
    ou
    index()
    sur une chaîne de caractères. Ces méthodes vous permettent de rechercher la position d'une sous-chaîne dans une chaîne plus grande.
     
    Voici un exemple simple : si vous avez un texte et que vous souhaitez trouver la position d'une ligne contenant un mot particulier, vous pouvez faire quelque chose comme ceci :
     
    texte = """Première ligne avec un mot clé
    Deuxième ligne sans
    Troisième ligne avec le mot clé aussi"""
     
    # Rechercher la ligne contenant 'mot clé'
    for ligne in texte.split('\n'):
        if 'mot clé' in ligne:
            print("Ligne trouvée :", ligne)
            # Si vous souhaitez connaître la position dans le texte
            position = texte.find(ligne)
            print("Position dans le texte :", position)
            break
     
    Ce code parcourt chaque ligne du texte, cherche celle qui contient le mot ou les mots que vous connaissez, et affiche la ligne ainsi que sa position dans le texte.
     
    Si vous avez besoin d'une recherche plus avancée ou de vous positionner dans un fichier, n'hésitez pas à me donner plus de détails, je serai ravi de vous aider davantage !
    ET comment modifier cette ligne une fois trouvée ?

    Bonjour ! Pour vous aider au mieux, pourriez-vous préciser de quelle ligne il s'agit ou dans quel contexte vous souhaitez la modifier ? Je suis là pour vous guider étape par étape. N'hésitez pas à me donner plus de détails, et je ferai de mon mieux pour vous accompagner avec plaisir !
    En python, Je voudrais modifier la ligne trouvée par un mot clé

    Bonjour ! Je suis heureux de vous aider avec votre script Python. Si vous souhaitez modifier une ligne dans un fichier en fonction d'un mot-clé, voici une méthode simple et efficace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    # Chemin vers votre fichier
    fichier = 'votre_fichier.txt'
    # Mot-clé à rechercher
    mot_cle = 'votre_mot_cle'
    # La nouvelle ligne que vous souhaitez insérer
    nouvelle_ligne = 'Ceci est la nouvelle ligne.'
     
    # Lire le contenu du fichier
    with open(fichier, 'r', encoding='utf-8') as file:
        lignes = file.readlines()
     
    # Modifier la ligne contenant le mot-clé
    for i, ligne in enumerate(lignes):
        if mot_cle in ligne:
            lignes[i] = nouvelle_ligne + '\n'  # Ajoutez '\n' si nécessaire
            break  # Si vous ne voulez modifier que la première occurrence
     
    # Écrire le contenu modifié dans le fichier
    with open(fichier, 'w', encoding='utf-8') as file:
        file.writelines(lignes)
     
    print("La ligne a été modifiée avec succès.")
    Ce script ouvre votre fichier, recherche la première ligne contenant le mot-clé, la remplace par la nouvelle ligne, puis sauvegarde le tout. Si vous souhaitez modifier toutes les lignes contenant le mot-clé, vous pouvez enlever le
    break
    .

    N'hésitez pas à me donner plus de détails si vous avez besoin d'une adaptation spécifique ou si vous souhaitez modifier plusieurs lignes. Je suis là pour vous aider avec plaisir !
    Maintenant, toujours en Python, je voudrais insérer une ligne à partir de celle trouvée avec un mot clé

    Bonjour ! Je suis ravi de pouvoir vous aider avec votre question en Python. Si vous souhaitez insérer une ligne dans un fichier à partir de celle trouvée avec un mot-clé, voici une approche simple et efficace :

    Lire le contenu du fichier ligne par ligne.
    Chercher la ligne contenant le mot-clé.
    Insérer la nouvelle ligne après cette ligne.
    Réécrire le contenu modifié dans le fichier.

    Voici un exemple de code pour illustrer cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    mot_cle = "votre_mot_clé"
    ligne_a_inserer = "Ceci est la nouvelle ligne à insérer.\n"
     
    # Lire le contenu du fichier
    with open('votre_fichier.txt', 'r') as fichier:
        lignes = fichier.readlines()
     
    # Créer une nouvelle liste pour le contenu modifié
    nouvelles_lignes = []
     
    # Parcourir chaque ligne pour trouver le mot-clé
    for ligne in lignes:
        nouvelles_lignes.append(ligne)
        if mot_cle in ligne:
            # Insérer la nouvelle ligne après celle contenant le mot-clé
            nouvelles_lignes.append(ligne_a_inserer)
     
    # Écrire le contenu modifié dans le fichier
    with open('votre_fichier.txt', 'w') as fichier:
        fichier.writelines(nouvelles_lignes)
    Merci, je vais essayer tout çà !

    Avec plaisir ! Je suis ravi de pouvoir vous aider. N'hésitez pas si vous avez besoin de quoi que ce soit d'autre. Bonne chance et prenez plaisir dans votre démarche !
    Bon je n'ai pas testé, j'ai eu l'occasion de lui demander une regex (expression régulière = syntaxe à dormir debout ), ChatGpt m'a scotché

    Je l'utilise aussi avec connexion : https://auth.openai.com/log-in, ça me permet de conserver mes pérégrinations...

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par noradan Voir le message
    Existe-t-il une fonction ou une méthode qui fasse ça avec un argument du genre "numéro de ligne" ?
    L'utilitaire Linux qui fait cela s'appelle sed... et vous avez une mouture pythonsed programmable ou utilisable en ligne de commande.

    Si voulez coder cela par vous même, il faut prendre le temps d'ouvrir un tuto histoire de comprendre ce qu'est un fichier "texte", les opérations qui permettent de lire/mettre à jour/... et agencer le tout en boucle et conditions.
    Un fichier "texte" est une séquence d'octets où la "ligne" est définie par le marqueur de fin de ligne.
    Les lignes étant d'une longueur quelconque, afficher la Nième ligne suppose avoir lu (et compté) les N-1 lignes précédentes.
    Cela implique aussi qu'on ne peut pas modifier un fichier "texte": on pourra seulement créer une nouvelle mouture contenant les mises à jour.


    Rien de très difficile, juste des bases.

    Citation Envoyé par dmganges Voir le message
    Mais la syntaxe de Python est tellement étendue, que plutôt que de rechercher dans la doc Python, je passe par ChatGpt.
    Il n'est même pas nécessaire de se connecter, voici ce que ça donne, c'est époustouflant
    La syntaxe du langage est assez simple.... Ce sont les fonctionnalités des différentes bibliothèques qui sont nombreuses.
    Pour le reste ChatGPT essaie juste de répondre à la question qui a été posée: si elle ne correspond pas à celle du PO, c'est tant pis....Il ne faut quand même pas oublier que programmer c'est plus de temps passé à comprendre question ou problème à résoudre qu'à écrire la solution *et* s'assurer que la solution est correcte.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Hello,

    j'ai besoin d'insérer ou de modifier une ligne dans un fichier.
    Quelle est la taille et le type du fichier ?

    Existe-t-il une fonction ou une méthode qui fasse ça avec un argument du genre "numéro de ligne" ?
    Oui selon la taille la méthode diffère...
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par noradan Voir le message
    Je ne trouve pas la réponse.
    Parce qu'à la base, cela n'est pas possible.
    Un fichier informatique n'est qu'une suite de données binaires (0 et 1). Dans la majorité des cas, ces données ne sont pas lisibles parce qu'elles ne sont pas associées à du caractère. On parle alors de "fichier binaire" (mp3, avi, mp4, pdf, docx, xlsx, jpg, dll, etc, etc, etc). Ces fichiers sont destinés à être traités par des logiciels dédiés qui, eux, savent gérer leur contenu.
    Il existe toutefois une petite catégorie de fichiers où ces données sont groupées par 8, parfois par 16, et où chaque groupement est associé à une représentation visuelle sous forme de caractère. On parle alors de "fichier texte". Et dans ces fichiers texte, faits pour être lisibles par un humain, il existe un caractère particulier signifiant "ceci est la fin de la ligne". Et quand l'éditeur voit ce caractère il place alors le curseur sur la ligne suivante. Ce qui produit à l'écran ce beau rendu sous forme de "lignes". Mais ce rendu reste une simple illusion car en natif le fichier reste intrinsèquement, une suite de bits.
    Partant de là, du point de vue informatique, il n'y a pas de notion de "ligne" ou "numéro de ligne". Tu veux lire un fichier, tu le parcours caractère par caractère (car fort heureusement les outils de lecture sont adaptés à ce groupement de 8 ou 16). Et quand tu trouves ce fameux caractère particulier tu comptes "+1" ce qui te permet de calculer ce fameux numéro de ligne. Et si par hasard tu te mets à écrire au lieu de lire, tu ne feras que remplacer ce qui est par ce que tu écris (pas de notion "d'insertion").

    Après il existe des méthodes. Exemple lire un fichierX d'un côté et écrire un fichierY de l'autre. En écrivant plus dans Y que ce que tu lis dans X tu te retrouves avec un fichier Y "correspondant" au fichier X modifié. Ensuite ne reste qu'à remplacer X par Y. Et donc il existe des outils qui englobent ces méthodes dans un "packaging". Surtout dans le monde Unix/Linux où toute la configuration est gérée par des fichiers textes (modifiables donc par l'admin s'il en a envie) et donc où il existe beaucoup d'outils dédiés à manipuler et gérer ce type de fichiers. Exemple "awk", qui permet de créer un algorithme de programmation permettant de traiter à son goût chaque ligne lue et chaque mot de la ligne. Ou "sed" mentionné par wiztricks permettant lui-aussi de traiter un fichier ligne par ligne. Ou encore "cut" permettant de couper un fichier de façon verticale, "grep" permettant de chercher les lignes contenant une certaine valeur, "tr" permettant de remplacer tout caractère faisant partie d'une suite X par le caractère situé à sa même position dans une suite Y, "paste" permettant de coller en vertical plusieurs fichiers et d'autres encore.
    Et il se trouve (je ne connaissais pas mais je viens de l'apprendre) que Python intègre ce fameux "sed" dans un module permettant d'intégrer des commandes "sed" dans un code Python (car effectivement "sed" est vraiment un outil pas mal puissant).
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Parce qu'à la base, cela n'est pas possible.
    Un fichier informatique n'est qu'une suite de données binaires (0 et 1). Dans la majorité des cas, ces données ne sont pas lisibles parce qu'elles ne sont pas associées à du caractère.
    On peut considérer qu'un octet n'est qu'une suite de 0 et de 1 pour émerveiller les gosses mais un ficher est toujours une suite d'octets (depuis au moins le milieu des années 80).

    On peut les afficher sous leur représentation hexadécimale (ou entière) puisque ce sont des nombres dans 0..255:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    >>> from textwrap import wrap
    >>> b = bytes(range(255))
    >>> print('\n'.join(wrap(b.hex(), width=70)))
    000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122
    232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445
    464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768
    696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b
    8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadae
    afb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1
    d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4
    f5f6f7f8f9fafbfcfdfe
    >>>
    Et puisque je peux les afficher, ils sont "lisibles" (par l'ordinateur).
    Mais je ne sais pas forcément en interpréter le contenu (et si je peux afficher un texte écrit en arabe ou en mandarin, je ne saurais pas le lire...)

    wikipedia est une bonne source d'information sur tout çà... Quel est l'intérêt d'en faire des caisses sans avoir pris le temps de les consulter pour s'assurer qu'on aurait un minimum de valeur ajoutée?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 923
    Billets dans le blog
    8
    Par défaut
    Bonjour.
    wikipedia est une bonne source d'information sur tout çà...
    En effet, je viens d'en lire le contenu concernant "fichier texte" et "fichier binaine".

    Quel est l'intérêt d'en faire des caisses sans avoir pris le temps de les consulter pour s'assurer qu'on aurait un minimum de valeur ajoutée?
    Si nous partons sur ce principe, 99,991 % de nos interventions consisteraient à donner des liens
    #Rien de nouveau sous le soleil, tout est vanité comme courir après le vent!
    Envie de développer pour Android avec Python? Pensez à Kivy
    Kivy c'est aussi ça: https://www.youtube.com/@MPython_Alaplancha

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par MPython Alaplancha Voir le message
    Si nous partons sur ce principe, 99,991 % de nos interventions consisteraient à donner des liens
    Lorsqu'il s'agit de débutants, ce qu'on trouve dans les tutos ou des articles publiées sur le web ont l'avantage d'être assez complets et bien rédigés.

    La difficulté (qu'ils rencontrent) est de trouver les bons mots clefs... et ce qu'on peut apporter, c'est justement ce background technique qui permet de "mieux" poser le problème.

    On n'apprend pas à programmer sans essayer de coder soi-même, tout comme on n'apprend pas des concepts sans les triturer dans tous les sens en faisant des recherches suivant les questions qu'on se pose.

    On peut bien sur se faire plaisir en montrant comme on sait coder ou rédiger et ça peut être très instructifs pour les moins débutants.

    Je ne suis plus "débutant". J'ai rédigé suffisamment de pages de tutos/documentation pour savoir l'effort que représente ce genre d'écriture et les difficultés qu'il peut y avoir pour couvrir un sujet.
    Du coup, une réponse donnant un point de départ et des références à approfondir sont largement suffisants et respectueuse du temps passé par d'autres à mettre tout un savoir profitable sous forme d'articles/tutos/...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    mais un ficher est toujours une suite d'octets (depuis au moins le milieu des années 80).
    Euh... non. Par exemple un fichier pcap contient dans son header des informations regroupées sur 3 bits. Un gif a des informations sur 9 bits. Un inode Unix stocke le type de fichier qu'il porte sur 4 bits. Et si on entre dans le domaine de la compression... Ce n'est pas parce que toi tu les lis par groupes de 8 que leurs données sont forcément par groupes de 8.

    Citation Envoyé par wiztricks Voir le message
    On peut les afficher sous leur représentation hexadécimale (ou entière) puisque ce sont des nombres dans 0..255:
    Et puisque je peux les afficher, ils sont "lisibles" (par l'ordinateur).
    Alors tu ne les affiches pas directement, tu passes par un outil particulier qui convertit le binaire en hexa. Et quand je disais "pas lisible" je sous-entendais "pour un humain". Je ne pensais pas avoir besoin de te le faire remarquer surtout quand je dis quelques mots plus loin que les programmes (sur ordinateur, je précise vu que pour toi cela semble nécessaire) savent les lire.

    Citation Envoyé par wiztricks Voir le message
    Mais je ne sais pas forcément en interpréter le contenu (et si je peux afficher un texte écrit en arabe ou en mandarin, je ne saurais pas le lire...)
    Oui allez vas-y, pinaille pinaille. Moi non plus certains fichiers de configuration Unix je ne sais pas les lire. Ils contiennent des mots clefs précis définissant des actions ou des paramètres et il faut la doc pour les comprendre. Si toi tu ne sais pas lire un texte en mandarin, un mandarin lui saura le lire et donc le consensus uniformément admis est de dire que ce fichier, même si toi particulièrement tu ne sais pas le lire, est quand-même admis comme étant "lisible"

    Citation Envoyé par wiztricks Voir le message
    Quel est l'intérêt d'en faire des caisses sans avoir pris le temps de les consulter pour s'assurer qu'on aurait un minimum de valeur ajoutée?
    Ah pour toi, rien, absolument rien. Mais comme ce n'est pas à toi que je parle mais à noradan (c'est indiqué par le fait que je le cite) je ne vois pas ce que tu viens ramener ton grain de sel. C'est à lui, pas à toi, de dire si ces caisses l'intéressent ou pas (sans exclure le fait que vu le détail qui en est fait sur wikipedia que tu cites, ce résumé que j'en ai fait puisse aussi en intéresser d'autres). Donc si toi ça ne t'intéresse pas, tu es absolument libre d'aller voir ailleurs si j'y suis.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  10. #10
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Euh... non. Par exemple un fichier pcap contient dans son header des informations regroupées sur 3 bits. Un gif a des informations sur 9 bits.
    Le fichier restera une suite d'octets.
    D'ailleurs les opérations de lecture ou d'écriture se font en nombre d'octets (pas en nombre de bits).
    Après on peut découper cette suite d'octets en autre chose... mais à la base, c'est et ça reste une suite d'octets(*).

    Citation Envoyé par Sve@r Voir le message
    Mais comme ce n'est pas à toi que je parle mais à noradan (c'est indiqué par le fait que je le cite) je ne vois pas ce que tu viens ramener ton grain de sel.
    Si vous vouliez vous adresser à noradan, vous lui auriez envoyé un message privé...
    Et si vous ne supportez pas qu'on vous signale que vous avez écrit des âneries, c'est votre problème.
    J'espère qu'il ne vous a pas attendu pour trouver une solution: les indications déjà données n'étaient pas si mauvaises.

    Bonne nuit.

    - W
    (*) edit: Côté disque un ficher sera une suite de blocs (non contigus). La taille d'un bloc sera un multiple de 512 octets. Le pilote disque lit/écrit (au moins) un bloc entier pour extraire/insérer les quelques octets demandés.
    Si un ficher "contient' 12 octets, il occupera un bloc entier. Si les blocs font 512 octets, 500 octets seront inutilisés.
    Pour réaliser l'illusion fichier = suite d'octets, il faudra noter la taille (en octets) du fichier dans les metadata... histoire d'interdire la lecture des octets après le 10ième ou savoir où faire un ajout de données..
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Insert d'une ligne dans un fichier json
    Par l.mnu dans le forum Langage
    Réponses: 4
    Dernier message: 07/10/2022, 12h12
  2. [sed] Modification d'une ligne dans un fichier
    Par tiresias54 dans le forum Shell et commandes GNU
    Réponses: 15
    Dernier message: 07/04/2015, 16h35
  3. insertion automatique d'une ligne dans un fichier verrouillé
    Par CALLEBOUT dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/07/2011, 00h09
  4. Réponses: 3
    Dernier message: 08/08/2009, 18h05
  5. Supprimer une ligne dans un fichier
    Par sbeu dans le forum Langage
    Réponses: 3
    Dernier message: 13/05/2003, 10h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo