[RESOLU] Manipulation de fichier en python [RESOLU]
Modérateurs : Francois, Manfraid
[RESOLU] Manipulation de fichier en python
Bonsoir,
Pour mon projet, je souhaiterai pouvoir dans un fichier stocker des valeurs de températures.
Pas de probleme la dessus. Ni pour les recupérer, grace a "readlines()"
Par contre, je souhaiterai au besoin ne modifier qu'une ligne de mon fichier texte au travers de mon programme, et visiblement se n'est pas possible de reecrire qu'une seul ligne d'un fichier .txt
C'est le cas ?
Dans se cas la seule solution est de lire/copier mon fichier, changer la valeur voulue et re-ecrire le fichier ?
Pour mon projet, je souhaiterai pouvoir dans un fichier stocker des valeurs de températures.
Pas de probleme la dessus. Ni pour les recupérer, grace a "readlines()"
Par contre, je souhaiterai au besoin ne modifier qu'une ligne de mon fichier texte au travers de mon programme, et visiblement se n'est pas possible de reecrire qu'une seul ligne d'un fichier .txt
C'est le cas ?
Dans se cas la seule solution est de lire/copier mon fichier, changer la valeur voulue et re-ecrire le fichier ?
Modifié en dernier par EVOTk le jeu. 11 déc. 2014 18:14, modifié 1 fois.
- vague nerd
- Modérateur
- Messages : 1473
- Enregistré le : mar. 14 oct. 2014 11:42
- Localisation : France !
Re: Manipulation de fichier en python
Bonjour.
En java, pas de problème. Mais j'imagine que tu parles de python.
A prioris, ce n'est pas possible. Pour simplifier ton écriture/réécriture, creuse ce qui suit.
Tu peux accéder à un endroit précis d'un fichier sans avoir à lire le fichier entier (cas de gros fichiers):
On peux aussi modifier l'objet mmap
Edit : j'ai oublié de citer ma source. Je n'ai plus accès accès à l'historique du navigateur, et impossible de retrouver le site. Dsl.
En java, pas de problème. Mais j'imagine que tu parles de python.
A prioris, ce n'est pas possible. Pour simplifier ton écriture/réécriture, creuse ce qui suit.
Tu peux accéder à un endroit précis d'un fichier sans avoir à lire le fichier entier (cas de gros fichiers):
Code : Tout sélectionner
>>> f = open("bonnie.txt", "wb")
>>> f.write("My Bonnie lies over the ocean.")
>>> f.close()
>>> f.open("bonnie.txt", "r+b")
>>> mm = mmap(f.fileno(), 0)
>>> print mm[3:9]
Bonnie
Code : Tout sélectionner
>>> print mm[24:]
ocean.
>>> mm[24:] = "sea. "
>>> print mm[:]
My Bonnie lies over the sea.
Cordialement,
Vague Nerd
Vague Nerd
-
- Raspinaute
- Messages : 248
- Enregistré le : mar. 7 oct. 2014 09:46
- Localisation : Morsang / Orge - Essonne
- Contact :
Re: Manipulation de fichier en python
Bonjour,
Tu peux aussi utiliser les fichiers de type 'configuration' (*.ini) avec la librairie configparser.
Ces fichiers sont de la forme:
et ainsi de suite
ainsi tu peux lire et modifier la cle-2 de la Section-1
Tu peux aussi utiliser les fichiers de type 'configuration' (*.ini) avec la librairie configparser.
Ces fichiers sont de la forme:
Code : Tout sélectionner
[Section 1]
cle-1 = valeur1
cle-2 = texte deux
cle-3 = 3
ainsi tu peux lire et modifier la cle-2 de la Section-1
DS712+ 2x Western Digital WD10EADS-00L 1000 GB (SHR) - Firmware: DSM 6.1.6-15266
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox v6
https://meteo.folcke.net
https://wiki.folcke.net
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox v6
https://meteo.folcke.net
https://wiki.folcke.net
-
- Raspinaute
- Messages : 248
- Enregistré le : mar. 7 oct. 2014 09:46
- Localisation : Morsang / Orge - Essonne
- Contact :
Re: Manipulation de fichier en python [RESOLU]
Voici un exemple d' utilisation:
Le fichier Test.ini
et un exemple pour manipuler ce fichier:
Le fichier Test.ini
Code : Tout sélectionner
[Fichiers]
logs = /var/www/RFX-Meteo/logs/Meteo.txt
status = /var/www/RFX-Meteo/config/Status.txt
meteoxml = /var/www/RFX-Meteo/datas/Sondes.xml
logsxml = /var/www/RFX-Meteo/logs/MeteoXml.txt
[Sondes]
tx5 = Rain6
50-05-4c-00 = Temp
51-01-4c-00 = HUM1
Code : Tout sélectionner
#!/usr/bin/env python
# coding=UTF-8
# =====================================
# import des modules
import serial
import datetime
import time
import struct
import sys
import os
import ConfigParser
# ----------------------------------------------------------------------------
# Lit la configuration
# ----------------------------------------------------------------------------
def Get_Config(configfile):
cfg = ConfigParser.ConfigParser()
cfg.read(configfile)
return cfg
# ----------------------------------------------------------------------------
# Ecrit dans le fichier de configuration
# ----------------------------------------------------------------------------
def Set_Config(configfile, cfg):
with open(configfile, 'wb') as config:
cfg.write(config)
#-------------------------------------------
# Boucle principale
#-------------------------------------------
cfgConf = Get_Config('Test.ini')
print cfgConf.get('Fichiers', 'meteoxml')
cfgConf.set('Fichiers', 'meteoxml','Nouvelle Valeur')
Set_Config('Test.ini', cfgConf)
DS712+ 2x Western Digital WD10EADS-00L 1000 GB (SHR) - Firmware: DSM 6.1.6-15266
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox v6
https://meteo.folcke.net
https://wiki.folcke.net
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox v6
https://meteo.folcke.net
https://wiki.folcke.net
Re: Manipulation de fichier en python
la meilleurs techinque pour faire un enreigstrement sur un fichier sans en relire complètement le contenu et ceci
et a chaque foi que le code sera executer une nouvelle ligne dans le fichier sera ajouter
Code : Tout sélectionner
f = open('monfichier.txt','a')
f.write('Ma ligne\n')
f.close()
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.
- vague nerd
- Modérateur
- Messages : 1473
- Enregistré le : mar. 14 oct. 2014 11:42
- Localisation : France !
Re: Manipulation de fichier en python
@Manfraid : evo ne veut pas écrire à la fin du fichier, mais en plein milieu.
Cordialement,
Vague Nerd
Vague Nerd
Re: Manipulation de fichier en python
exact j'avais mal lu sont problème
dans ce cas pas le choix de passer dans tout le fichier et de modifier la ligne
Evotk : Aurais-tu un exemple de la structure de ton fichier pour avoir un ordre d'idée de command le modifier
dans ce cas pas le choix de passer dans tout le fichier et de modifier la ligne
Evotk : Aurais-tu un exemple de la structure de ton fichier pour avoir un ordre d'idée de command le modifier
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.
Re: Manipulation de fichier en python
Salut Manfraid,
Je voulai faire un fichier de configuration du type :
Mais visiblement sans re-ecrire tout le fichier a chaque fois cela n'est pas possible et bien que mon fichier ne sera pas gros du tout lidée me plait pas vraiment !
La proposition de mike913 me semble plutot adapté a se que je souhaite faire, je m'y pencherai quand je serai en repos
Je voulai faire un fichier de configuration du type :
Et pouvoir modifier 18 ou 16 suivant le besoin via python####### CONFIG #####
--- TEMPERATURE ---
JOUR = 18
NUIT = 16
---
Mais visiblement sans re-ecrire tout le fichier a chaque fois cela n'est pas possible et bien que mon fichier ne sera pas gros du tout lidée me plait pas vraiment !
La proposition de mike913 me semble plutot adapté a se que je souhaite faire, je m'y pencherai quand je serai en repos
-
- Raspinaute
- Messages : 136
- Enregistré le : sam. 18 oct. 2014 19:09
Re: Manipulation de fichier en python
Le plus simple serai soit de passer par un fichier XML (Python sait modifier une ligne ou un champ des ce type de fichier)
Soit de mettre tes valeurs dans une base SQL
C'est à mon sens, les moyens les plus simple pour modifier une seule valeur dans un fichier
Soit de mettre tes valeurs dans une base SQL
C'est à mon sens, les moyens les plus simple pour modifier une seule valeur dans un fichier
Re: Manipulation de fichier en python
Hello,
la solution de mike913 me convient parfaitement pour le moment. Merci a vous.
la solution de mike913 me convient parfaitement pour le moment. Merci a vous.