Les deux révisions précédentes
Révision précédente
Prochaine révision
|
Révision précédente
Prochaine révision
Les deux révisions suivantes
|
fichier_acces_direct [2008/12/18 10:11] tyrtamos |
fichier_acces_direct [2008/12/21 09:22] tyrtamos |
===== Création d'un nouveau fichier en accès direct ===== | ===== Création d'un nouveau fichier en accès direct ===== |
| |
Même si on utilisera par la suite le mode d'ouverture des fichiers 'r+b' (mode de "mise à jour"), on ne peut pas créer un nouveau fichier avec lui. Il faut utiliser le mode "wb" tout simplement. | Même si on utilisera par la suite le mode d'ouverture des fichiers 'rb+' (mode de "mise à jour" = lecture+écriture), on ne peut pas créer un nouveau fichier avec lui. Il faut utiliser le mode "wb" tout simplement. Pour simplifier le code, on ne gère pas ici le déclenchement d'exceptions dues aux erreurs (droit insuffisant pour créer le fichier par exemple). |
| |
<code python> | <code python> |
# création du fichier | # création du fichier |
fichier = "datas.bdd" | fichier = "datas.fad" |
try: | f = open(fichier, 'wb') |
f = open(fichier, 'wb') | f.close() |
f.close() | |
except: | |
print "erreur dans la création du fichier " + fichier | |
</code> | </code> |
| |
Bien entendu, l'extension du fichier (j'ai mis ".bdd" pour "base de données") peut être n'importe quoi. Cependant, il ne serait pas prudent d'utiliser une extension connue comme ".txt" alors qu'on n'a pas l'intention de créer un fichier texte. | Bien entendu, l'extension du fichier (j'ai mis ".fad" pour "fichier en accès direct") peut être n'importe quoi. Cependant, il ne serait pas prudent d'utiliser une extension connue comme ".txt" alors qu'on n'a pas l'intention de créer un fichier texte. |
| |
===== Détermination et conservation de la longueur des enregistrements ===== | ===== Détermination et conservation de la longueur des enregistrements ===== |
* si elle est trop courte, certaines valeurs ne pourront être enregistrées | * si elle est trop courte, certaines valeurs ne pourront être enregistrées |
| |
* elle sera peut-être trop courte pour les évolutions futures du fichier | * elle sera peut-être trop courte ou trop longue pour les évolutions futures du fichier |
| |
C'est assez facile pour l'enregistrement de chaines de caractères, à une exception près: attention aux encodages unicode qui "consomment" plus de place en octets qu'il n'y a de caractères imprimables! Il serait d'ailleurs sage qu'il y ait dans le code en même temps une vérification/alerte de dépassement et un tronquage pour éviter qu'une chaine trop longue ne recouvre le début de l'enregistrement suivant. | C'est assez facile pour l'enregistrement de chaines de caractères, à une exception près: attention aux encodages unicode qui "consomment" plus de place en octets qu'il n'y a de caractères imprimables! Il serait d'ailleurs sage qu'il y ait dans le code en même temps une vérification/alerte de dépassement et un tronquage pour éviter qu'une chaine trop longue ne recouvre le début de l'enregistrement suivant. |