J'ai besoin de lire, écrire et créer un fichier INI avec Python3.
FILE.INI
default_path = "/path/name/"
default_file = "file.txt"
Fichier Python:
# Read file and and create if it not exists
config = iniFile( 'FILE.INI' )
# Get "default_path"
config.default_path
# Print (string)/path/name
print config.default_path
# Create or Update
config.append( 'default_path', 'var/shared/' )
config.append( 'default_message', 'Hey! help me!!' )
FILE.INI MIS À JOUR
default_path = "var/shared/"
default_file = "file.txt"
default_message = "Hey! help me!!"
python
python-3.x
ini
Olaf
la source
la source
[foobar]
.Réponses:
Cela peut être quelque chose pour commencer:
Vous pouvez en trouver plus dans la documentation officielle du configparser .
la source
configparser.MissingSectionHeaderError
lors de l'utilisation des fichiers d'exemple fournis sans les en-têtes de section appropriés.Voici un exemple complet de lecture, de mise à jour et d'écriture.
Fichier d'entrée, test.ini
Code de travail.
Fichier de sortie, test_update.ini
Le fichier d'entrée d'origine reste intact.
la source
read
méthode renvoie maintenant une liste de fichiers lus / fichier, mais pas le contenuhttp://docs.python.org/library/configparser.html
La bibliothèque standard de Python pourrait être utile dans ce cas.
la source
La norme
ConfigParser
nécessite normalement un accès viaconfig['section_name']['key']
, ce qui n'est pas amusant. Une petite modification peut fournir un accès aux attributs:AttrDict
est une classe dérivée dedict
laquelle permet l'accès via les clés du dictionnaire et l'accès aux attributs: cela signifiea.x is a['x']
Nous pouvons utiliser cette classe dans
ConfigParser
:et maintenant nous obtenons
application.ini
:comme
la source
config._sections.general.key = "3"
celui-ci ne change pas la valeur interne de l'option de configuration et ne peut donc être utilisée que pour un accès en lecture seule. Si après la.read()
commande la configuration est étendue ou modifiée (ajouter des options, des paires de valeurs pour certaines sections, -> qui effectue une interpolation ce qui peut être très important) cette méthode d'accès ne doit pas être utilisée! De plus, tout accèsconfig._sections["section"]["opt"]
dont est privé évite l'interpolation et renvoie les valeurs brutes!ConfigObj est une bonne alternative à ConfigParser qui offre beaucoup plus de flexibilité:
Il a quelques inconvénients:
=
… ( pull request )fuabr =
au lieu de simplement cellesfubar
qui semblent bizarres et erronées.la source
contenu de mon fichier backup_settings.ini
code python pour la lecture
pour écrire ou mettre à jour
production
la source