Rédiger un rapport en python
Fermé
codeur782
-
Modifié le 25 janv. 2022 à 15:43
mamiemando Messages postés 33346 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 8 novembre 2024 - 25 janv. 2022 à 16:04
mamiemando Messages postés 33346 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 8 novembre 2024 - 25 janv. 2022 à 16:04
A voir également:
- Rédiger un rapport en python
- Citizen code python - Accueil - Outils
- Plan d'un rapport de stage - Guide
- Impossible d'afficher le rapport de tableau croisé dynamique sur un rapport existant - Forum Bureautique
- Ce programme est écrit en python. ✓ - Forum Python
3 réponses
Utilisateur anonyme
25 janv. 2022 à 12:02
25 janv. 2022 à 12:02
Bonjour
Tu as essayé d’utiliser les balises de codes et je t’en remercie, mais comme tu peux le constater le pavé gris, c’est pas ça…..
Pour t’en servir correctement (et particulièrement pour Python) merci de faire comme décrit sur ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Tu as essayé d’utiliser les balises de codes et je t’en remercie, mais comme tu peux le constater le pavé gris, c’est pas ça…..
Pour t’en servir correctement (et particulièrement pour Python) merci de faire comme décrit sur ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 25 janv. 2022 à 13:19
Modifié le 25 janv. 2022 à 13:19
Bonjour,
"ValueError: I/O operation on closed file." opération d'entrée/sortie sur un fichier fermé
Dans ta boucle while, tu fermes le fichier à la fin du 1er tour, ( f.close() )donc au 2eme tour, impossible d'écrire dedans ...
"ValueError: I/O operation on closed file." opération d'entrée/sortie sur un fichier fermé
Dans ta boucle while, tu fermes le fichier à la fin du 1er tour, ( f.close() )donc au 2eme tour, impossible d'écrire dedans ...
mamiemando
Messages postés
33346
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
8 novembre 2024
7 803
Modifié le 25 janv. 2022 à 16:07
Modifié le 25 janv. 2022 à 16:07
Bonjour,
Pour écrire à la suite d'un fichier, il faut l'ouvrir en mode append ('a') et non write ('w').
Pour fermer un fichier au bon moment (seulement s'il a été ouvert avec succès, et y compris si une exception est levée), je t'invite à utiliser un context manager (i.e. utiliser
Si on repart de ce tutoriel :
client.py
server.py
Par ailleurs, je pense que ce que tu veux faire, tu devrais jeter un œil au module
Bonne chance
Pour écrire à la suite d'un fichier, il faut l'ouvrir en mode append ('a') et non write ('w').
Pour fermer un fichier au bon moment (seulement s'il a été ouvert avec succès, et y compris si une exception est levée), je t'invite à utiliser un context manager (i.e. utiliser
with) qui s'occupera de faire
f.close(). Il devrait d'ailleurs en être de même pour n'importe quel descripteur de fichier ce qui inclue les sockets.
Si on repart de ce tutoriel :
client.py
#!/usr/bin/env python3 import socket HOST = '127.0.0.1' # The server's hostname or IP address PORT = 65432 # The port used by the server with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.connect((HOST, PORT)) s.sendall(b'Hello, world') data = s.recv(1024) print('Received', repr(data))
server.py
#!/usr/bin/env python3 import datetime, socket HOST = '127.0.0.1' # Standard loopback interface address (localhost) PORT = 65432 # Port to listen on (non-privileged ports are > 1023) def message(s, f=None): print(s) if f: print(s, file=f) filename = "toto.log" with open(filename, "a") as f: with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.bind((HOST, PORT)) s.listen() conn, addr = s.accept() with conn: print('Connected by', addr) message(f"Nouveau client avec l'IP {addr[0]} sur le port {PORT}", f) message(f"Date et heure de connexion : {datetime.datetime.now().strftime('%d/%m/%y %H:%M:%S')}", f) while True: data = conn.recv(1024) if not data: break conn.sendall(data)
Par ailleurs, je pense que ce que tu veux faire, tu devrais jeter un œil au module
loggingqui me paraît bien plus approprié que de le recoder, surtout si tu envisages d'utiliser des threads. Dans ce cas, il est important que ton logger soit robuste aux accès concurrents.
Bonne chance