Fichiers-txt-csv-dictionnaire
OUVERTURE
Mode
Effet
"r"
Ouvre le fichier en mode lecture (r = read ).
"w"
Ouvre le fichier en mode écriture ( w = write ). Si le fichier n’existe pas il est créé, si le fichier existe déjà, il est écrasé.
"a"
Ouvre le fichier en mode ajout ( a = append ). Si le fichier n’existe pas, il est créé, sinon, les ajouts se feront à la fin du fichier existant.
FERMETURE :
LECTURE :
Une autre méthode pour lire l’intégralité d’un fichier en une instruction seulement est d’utiliser \(readlines()\). Ce n’est possible que si le fichier n’est pas trop volumineux : puisqu’il est copié intégralement dans une variable, c’est-à-dire dans la mémoire vive de l’ordinateur.
Remarque :
ECRITURE :
fichier csv
DICTIONNAIRE :
Dessins CSV
Code
Fichier CSV
#0804 dessins csv.py
import csv
from tkinter import*
def creerfenetre(fenetre,titre,taille):
"modifie une fenêtre"
fenetre.title(titre)
fenetre.geometry(taille)
return fenetre
def dessine_csv(can):
"""Ouvre le fichier csv et dessine dans le canevas les figures"""
ft='verdana 12 bold'
with open("figure.csv") as fichier_cvs:
lecture=csv.DictReader(fichier_cvs,delimiter=";")
for ligne in lecture:
donnees=ligne["polygone"]
#split transforme une chaîne de caractères en une liste
d=donnees.split(',')# voir chapitre types de données
figure=ligne['figure']
coord=ligne['polygone']
couleur=ligne['couleur']
x1,y1,x2,y2=int(d[0]),int(d[1]),int(d[2]),int(d[3])
xi,yi=int((x1+x2)/2),int((y1+y2)/2)
if figure=='polygone' :
can.create_polygon(d,fill=couleur)
can.create_text(xi+20,yi+100,text=pays,font=ft)
if figure=='triangle' :
can.create_polygon(d,fill=couleur)
can.create_text(xi+20,yi+100,text=figure,font=ft)
if figure=='rectangle':
can.create_rectangle(d,fill=couleur)
can.create_text(xi,yi,text=figure,font=ft)
if figure=='cercle' or figure=='ellipse':
can.create_oval(d,fill=couleur)
can.create_text(xi,yi,text=figure,font=ft)
fichier_cvs.close()
#---------------------------------------#
largeur,hauteur=1000,640
fenetre=Tk()
taille=str(largeur)+"x"+str(hauteur)
titre="Dessins CSV"
creerfenetre(fenetre,titre,taille)
can=Canvas(fenetre,width=largeur,height=hauteur,bg="white")
can.grid(row=0,column=0)
dessine_csv(can)
fenetre.mainloop()
résultat NSI Compter les lettres
Code
Fichier CSV
majuscules=[65, 66, 67, 68, 69, 70, 71, 72,
73, 74, 75, 76, 77, 78, 79, 80,
81, 82, 83, 84, 85, 86, 87, 88, 89, 90]
minuscules=[97, 98, 99, 100, 101, 102, 103, 104, 105,
106, 107, 108, 109, 110, 111, 112, 113,
114, 115, 116, 117, 118, 119, 120, 121, 122]
for i in range(len(majuscules)):
print('"'+chr(majuscules[i])+'"',end=',')
for i in range(len(minuscules)):
print('"'+chr(minuscules[i])+'"',end=',')
Fabriquer les fichiers
# file-append.py
f = open('fichier1.txt','a')
f.write("Lecture dans un fichier\n")
f.write("Une grande partie de l'information \n")
f.write("en biologie est stockée sous forme\n")
f.write("de texte dans des fichiers.\n")
f.write("Pour traiter cette information,\n")
f.write("vous devez le plus souvent lire\n")
f.write("ou écrire dans un ou plusieurs fichiers.\n")
f.write("Python possède pour cela de nombreux \n")
f.write("outils qui vous simplifient la vie.\n")
f.close()
f = open('fichier2.txt','a')
f.write("Chaque élément de la liste lignes est\n")
f.write("une chaîne de caractères.\n")
f.write("C'est en effet sous forme de chaînes \n")
f.write("de caractères que\n")
f.write("Python lit le contenu d'un fichier.\n")
f.close()
f = open('fichier3.txt','a')
f.write("Chaque élément de la liste lignes se termine par le caractère \n.\n")
f.write("Ce caractère un peu particulier correspond au « saut de ligne »\n")
f.write("qui permet de passer d'une ligne à la suivante. \n")
f.write("Ceci est codé par un caractère spécial que l'on représente par \n.\n")
f.write("Vous pourrez parfois rencontrer également la notation octale \012.\n")
f.close()
f = open('fichier-donnees.txt','a')
f.write("code ASCII :\n")
f.write(" 33 = !\n")
f.write(' 34 = " ; 35 = # ; 36 = $ ; 37 = % ; 38 = &\n')
f.write(" 39 = ' ; 40 = ( ; 41 = ) ; 42 = * ; 43 = +\n")
f.write(" 44 = , ; 45 = - ; 46 = . ; 47 = / ; 48 = 0\n")
f.write(" 49 = 1 ; 50 = 2 ; 51 = 3 ; 52 = 4 ; 53 = 5\n")
f.write(" 54 = 6 ; 55 = 7 ; 56 = 8 ; 57 = 9 ; 58 = :\n")
f.write(" 59 = ; ; 60 = < ; 61 = = ; 62 = > ; 63 = ?\n")
f.write(" 64 = @ ; 65 = A ; 66 = B ; 67 = C ; 68 = D\n")
f.write(" 69 = E ; 70 = F ; 71 = G ; 72 = H ; 73 = I\n")
f.write(" 74 = J ; 75 = K ; 76 = L ; 77 = M ; 78 = N\n")
f.write(" 79 = O ; 80 = P ; 81 = Q ; 82 = R ; 83 = S\n")
f.write(" 84 = T ; 85 = U ; 86 = V ; 87 = W ; 88 = X\n")
f.write(" 89 = Y ; 90 = Z ; 91 = [ ; 92 = \ ; 93 = ]\n")
f.write(" 94 = ^ ; 95 = _ ; 96 = ` ; 97 = a ; 98 = b\n")
f.write(" 99 = c ; 100 = d ; 101 = e ; 102 = f ; 103 = g\n")
f.write(" 104 = h ; 105 = i ; 106 = j ; 107 = k ; 108 = l\n")
f.write(" 109 = m ; 110 = n ; 111 = o ; 112 = p ; 113 = q\n")
f.write(" 114 = r ; 115 = s ; 116 = t ; 117 = u ; 118 = v\n")
f.write(" 119 = w ; 120 = x ; 121 = y ; 122 = z ; 123 = {\n")
f.write(" 124 = | ; 125 = } ; 126 = ~ ;\n")
f.close()
f = open('output1.txt','a')
f.write("1\n")
f.write("4\n")
f.write("9\n")
f.write("16\n")
f.write("25\n")
f.write("36\n")
f.write("49\n")
f.write("64\n")
f.write("81\n")
f.write("100\n")
f.close()
ECRIRE LES NOMBRES
#acompter-les-lettres.py
#liste des caractères
lettres=["A","B","C","D","E","F","G","H","I","J",
"K","L","M","N","O","P","Q","R","S","T",
"U","V","W","X","Y","Z","a","b","c","d",
"e","f","g","h","i","j","k","l","m","n",
"o","p","q","r","s","t","u","v","w","x","y","z"]
liste_fichiers2 =["fichier-donnees.txt","fichier1.txt",
"fichier2.txt","fichier3.txt","output1.txt"]
for i in range(1,len(liste_fichiers2)):
f=open(liste_fichiers2[i])
k=0
m=f.read()
for ligne in m:
message = ligne
for j in range(len(message)):
if message[j] in lettres:k=k+1
print(message,end='')
f.close()
print('----------------------------------------------------------------')
print('k =',k)
print('----------------------------------------------------------------')
print('Dans le fichier ',liste_fichiers2[i],' il y a ',k, ' lettres')
print('----------------------------------------------------------------')

Mode |
Effet |
---|---|
"r"
|
Ouvre le fichier en mode lecture (r = read ). |
"w"
|
Ouvre le fichier en mode écriture ( w = write ). Si le fichier n’existe pas il est créé, si le fichier existe déjà, il est écrasé. |
"a"
|
Ouvre le fichier en mode ajout ( a = append ). Si le fichier n’existe pas, il est créé, sinon, les ajouts se feront à la fin du fichier existant. |

![]() |
![]() |
Une autre méthode pour lire l’intégralité d’un fichier en une instruction seulement est d’utiliser \(readlines()\). Ce n’est possible que si le fichier n’est pas trop volumineux : puisqu’il est copié intégralement dans une variable, c’est-à-dire dans la mémoire vive de l’ordinateur.
Remarque :

![]() |
Code |
Fichier CSV |
---|---|
#0804 dessins csv.py
import csv
from tkinter import*
def creerfenetre(fenetre,titre,taille):
"modifie une fenêtre"
fenetre.title(titre)
fenetre.geometry(taille)
return fenetre
def dessine_csv(can):
"""Ouvre le fichier csv et dessine dans le canevas les figures"""
ft='verdana 12 bold'
with open("figure.csv") as fichier_cvs:
lecture=csv.DictReader(fichier_cvs,delimiter=";")
for ligne in lecture:
donnees=ligne["polygone"]
#split transforme une chaîne de caractères en une liste
d=donnees.split(',')# voir chapitre types de données
figure=ligne['figure']
coord=ligne['polygone']
couleur=ligne['couleur']
x1,y1,x2,y2=int(d[0]),int(d[1]),int(d[2]),int(d[3])
xi,yi=int((x1+x2)/2),int((y1+y2)/2)
if figure=='polygone' :
can.create_polygon(d,fill=couleur)
can.create_text(xi+20,yi+100,text=pays,font=ft)
if figure=='triangle' :
can.create_polygon(d,fill=couleur)
can.create_text(xi+20,yi+100,text=figure,font=ft)
if figure=='rectangle':
can.create_rectangle(d,fill=couleur)
can.create_text(xi,yi,text=figure,font=ft)
if figure=='cercle' or figure=='ellipse':
can.create_oval(d,fill=couleur)
can.create_text(xi,yi,text=figure,font=ft)
fichier_cvs.close()
#---------------------------------------#
largeur,hauteur=1000,640
fenetre=Tk()
taille=str(largeur)+"x"+str(hauteur)
titre="Dessins CSV"
creerfenetre(fenetre,titre,taille)
can=Canvas(fenetre,width=largeur,height=hauteur,bg="white")
can.grid(row=0,column=0)
dessine_csv(can)
fenetre.mainloop()
|
![]() |
Code |
Fichier CSV |
---|---|
majuscules=[65, 66, 67, 68, 69, 70, 71, 72,
73, 74, 75, 76, 77, 78, 79, 80,
81, 82, 83, 84, 85, 86, 87, 88, 89, 90]
minuscules=[97, 98, 99, 100, 101, 102, 103, 104, 105,
106, 107, 108, 109, 110, 111, 112, 113,
114, 115, 116, 117, 118, 119, 120, 121, 122]
for i in range(len(majuscules)):
print('"'+chr(majuscules[i])+'"',end=',')
for i in range(len(minuscules)):
print('"'+chr(minuscules[i])+'"',end=',')
Fabriquer les fichiers
# file-append.py
f = open('fichier1.txt','a')
f.write("Lecture dans un fichier\n")
f.write("Une grande partie de l'information \n")
f.write("en biologie est stockée sous forme\n")
f.write("de texte dans des fichiers.\n")
f.write("Pour traiter cette information,\n")
f.write("vous devez le plus souvent lire\n")
f.write("ou écrire dans un ou plusieurs fichiers.\n")
f.write("Python possède pour cela de nombreux \n")
f.write("outils qui vous simplifient la vie.\n")
f.close()
f = open('fichier2.txt','a')
f.write("Chaque élément de la liste lignes est\n")
f.write("une chaîne de caractères.\n")
f.write("C'est en effet sous forme de chaînes \n")
f.write("de caractères que\n")
f.write("Python lit le contenu d'un fichier.\n")
f.close()
f = open('fichier3.txt','a')
f.write("Chaque élément de la liste lignes se termine par le caractère \n.\n")
f.write("Ce caractère un peu particulier correspond au « saut de ligne »\n")
f.write("qui permet de passer d'une ligne à la suivante. \n")
f.write("Ceci est codé par un caractère spécial que l'on représente par \n.\n")
f.write("Vous pourrez parfois rencontrer également la notation octale \012.\n")
f.close()
|
f = open('fichier-donnees.txt','a')
f.write("code ASCII :\n")
f.write(" 33 = !\n")
f.write(' 34 = " ; 35 = # ; 36 = $ ; 37 = % ; 38 = &\n')
f.write(" 39 = ' ; 40 = ( ; 41 = ) ; 42 = * ; 43 = +\n")
f.write(" 44 = , ; 45 = - ; 46 = . ; 47 = / ; 48 = 0\n")
f.write(" 49 = 1 ; 50 = 2 ; 51 = 3 ; 52 = 4 ; 53 = 5\n")
f.write(" 54 = 6 ; 55 = 7 ; 56 = 8 ; 57 = 9 ; 58 = :\n")
f.write(" 59 = ; ; 60 = < ; 61 = = ; 62 = > ; 63 = ?\n")
f.write(" 64 = @ ; 65 = A ; 66 = B ; 67 = C ; 68 = D\n")
f.write(" 69 = E ; 70 = F ; 71 = G ; 72 = H ; 73 = I\n")
f.write(" 74 = J ; 75 = K ; 76 = L ; 77 = M ; 78 = N\n")
f.write(" 79 = O ; 80 = P ; 81 = Q ; 82 = R ; 83 = S\n")
f.write(" 84 = T ; 85 = U ; 86 = V ; 87 = W ; 88 = X\n")
f.write(" 89 = Y ; 90 = Z ; 91 = [ ; 92 = \ ; 93 = ]\n")
f.write(" 94 = ^ ; 95 = _ ; 96 = ` ; 97 = a ; 98 = b\n")
f.write(" 99 = c ; 100 = d ; 101 = e ; 102 = f ; 103 = g\n")
f.write(" 104 = h ; 105 = i ; 106 = j ; 107 = k ; 108 = l\n")
f.write(" 109 = m ; 110 = n ; 111 = o ; 112 = p ; 113 = q\n")
f.write(" 114 = r ; 115 = s ; 116 = t ; 117 = u ; 118 = v\n")
f.write(" 119 = w ; 120 = x ; 121 = y ; 122 = z ; 123 = {\n")
f.write(" 124 = | ; 125 = } ; 126 = ~ ;\n")
f.close()
f = open('output1.txt','a')
f.write("1\n")
f.write("4\n")
f.write("9\n")
f.write("16\n")
f.write("25\n")
f.write("36\n")
f.write("49\n")
f.write("64\n")
f.write("81\n")
f.write("100\n")
f.close()
|
#acompter-les-lettres.py
#liste des caractères
lettres=["A","B","C","D","E","F","G","H","I","J",
"K","L","M","N","O","P","Q","R","S","T",
"U","V","W","X","Y","Z","a","b","c","d",
"e","f","g","h","i","j","k","l","m","n",
"o","p","q","r","s","t","u","v","w","x","y","z"]
liste_fichiers2 =["fichier-donnees.txt","fichier1.txt",
"fichier2.txt","fichier3.txt","output1.txt"]
for i in range(1,len(liste_fichiers2)):
f=open(liste_fichiers2[i])
k=0
m=f.read()
for ligne in m:
message = ligne
for j in range(len(message)):
if message[j] in lettres:k=k+1
print(message,end='')
f.close()
print('----------------------------------------------------------------')
print('k =',k)
print('----------------------------------------------------------------')
print('Dans le fichier ',liste_fichiers2[i],' il y a ',k, ' lettres')
print('----------------------------------------------------------------')
|