<jupyter_start><jupyter_text>Fichiershttps://python.sdv.univ-paris-diderot.fr/07_fichiers/Une grande partie de l'information en biologie est stockée sous forme de texte dans des fichiers. Lire un fichier<jupyter_code>with open("zoo.txt", "r") as input_file:
    for line in input_file:
        print(line)<jupyter_output><empty_output><jupyter_text>Remarques :- L'instruction `with` introduit un bloc d'instructions. C'est à l'intérieur de ce bloc que nous effectuons toutes les opérations sur le fichier. L'instruction `open()` ouvre le fichier. Une fois sorti de ce bloc d'instructions, le fichier est automatiquement fermé.- Le mode `"r"` (pour *read*) indique qu'on lit le fichier.- L'instruction `for` permet d'itérer chaque ligne du fichier, une par une.- Il y a une ligne vide entre chaque animaux car la ligne contient elle-même un saut de ligne qui s'additionne à celui de l'instruction `print()`.Pour supprimer le saut de ligne supplémentaire :<jupyter_code>with open("zoo.txt", "r") as input_file:
    for line in input_file:
        print(line.strip())<jupyter_output><empty_output><jupyter_text>Lire un fichier en une seule fois<jupyter_code>with open("zoo.txt", "r") as input_file:
    content = input_file.read()
content<jupyter_output><empty_output><jupyter_text>Les symboles `\n` représentent le caractère de saut à la ligne.  Écrire un fichier<jupyter_code>animaux = ["poisson", "abeille", "chat"]

with open("zoo2.txt", "w") as output_file:
    for animal in animaux:
        output_file.write(animal)<jupyter_output><empty_output><jupyter_text>Le mode `"w"` (pour *write*) est utilisé pour écrire un fichier. Il ne faut pas oublier d'ajouter les sauts de ligne.<jupyter_code>animaux = ["poisson", "abeille", "chat"]

with open("zoo2.txt", "w") as output_file:
    for animal in animaux:
        output_file.write("{}\n".format(animal))<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.11246684350132626, 'fraction_numerical': 0.002122015915119363, 'mean_word_length': 5.371621621621622, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 21, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '5', 'dir': 'jupyter-structured-clean-dedup', 'id': '91118', 'license': 'BSD-3-Clause', 'n_tokens_mistral': 675, 'n_tokens_neox': 676, 'n_words': 200, 'path': '5_fichiers.ipynb', 'repo_name': 'pierrepo/ibi-python', 'size': '1885'}