Python 2
Python 2
Python 2
M123-2:
Langage Python
▪ Le nom du langage étant inspiré de la série Monty Python, cela donne une idée de la
philosophie derrière Python : la programmation doit être un plaisir.
▪ Python a des similarités avec des langages de script comme Perl ainsi qu’avec d’autres
langages comme Java et C.
Caractéristiques de base de Python
▪ Python est portable sur différents environnements tels que Unix et Windows.
▪ Logiciel libre.
▪ Python gère lui-même l’espace mémoire disponible. Il est doté d’un typage dynamique car il n’y a
pas de déclaration explicite de variables ni de spécification de types; le type d’une variable est
▪ Il offre des possibilités pour la programmation orientée objets. Une approche « jeu de construction »
▪ Il possède une bibliothèque très riche (interfaces graphiques, bases de données, protocoles
Internet, …).
Avantages du langage Python
▪ Les différentes versions de Python (pour Windows, Unix, etc.), son tutoriel original, son
manuel de référence, la documentation des bibliothèques de fonctions, etc. sont disponibles
gratuitement, à partir du site officiel: http://www.python.org .
▪ On peut alors télécharger et installer Python à partir de cet emplacement en tenant compte
de la plate-forme utilisée.
▪ Par exemple, sous Windows, vous devez télécharger le fichier python-3.x.msi à partir du
site officiel et l’exécuter pour installer Python. Le dossier d’installation est dans C:\Python,
puis les fichiers de la bibliothèque standard dans C:\Python\Lib.
▪ Vous pouvez alors utiliser Python à partir de l’environnement de programmation IDLE.
Qu’est-ce qu’un langage interprété
▪ Un langage de programmation permet d’écrire des programmes dans des langages mieux
adaptés aux humains, mais nécessite une étape de traduction.
▪ Pour un langage informatique, c’est quasiment pareil, nous avons des compilateurs et des
interpréteurs
- Les compilateurs, traduisent tout le code source en langage binaire utilisable directement
par le CPU.
- L’interpréteur lit une partie du code source et exécute directement les instructions
binaires qui correspondent et passe à la suite.
Qu’est-ce qu’un langage interprété
Exécution de Python
Trois façons différentes de démarrer Python :
▪ Lancer l’interpréteur en mode interactif, en saisissant à chaque fois une seule ligne de
Python pour l’exécuter directement.
- Sous Windows, dans le menu Démarrer on presse sur la touche Exécuter puis, on saisit
au clavier la commande python.
▪ Exécuter un script écrit en Python en appelant l’interpréteur avec le nom du script.
- On lance l’invite de commandes CMD et on saisit au clavier la commande python
suivie du nom du script (un fichier avec l’extension .py) renfermant un programme
Python.
Ex.: python E:\essai.py
- On peut aussi cliquer deux fois sur le fichier directement afin de l’éditer.
▪ Lancer l’interpréteur à partir d’une interface graphique dans un environnement de développem
ent qui offre des outils additionnels tels qu’un débogueur intégré, un éditeur de texte, etc.
Les bases de Python
Python 3: print( "hello" )
Il existe quelques différences entre la syntaxe de Python 2.x et
Python 3.
▪ print est une fonction dans Python 3, qui utilise des
parenthèses:
Python 3.x:
print("hello")
Python 2.x:
print "hello"
Python 3.x:
print "hello"
NNNSyntaxError: Missing parentheses in call to 'print'
Hello, Word!
C#
using System;
class Hello
{
static void Main()
{
Console.WriteLine("Hello, World");
}
}
Python
print("Hello, World")
Variables
Variable est une référence à un objet
▪ Pas une valeur
▪ Plus d'une variable peut se référer
au même objet
Types numériques
▪ Entier
✓ Généralement signé, 32 bits
Entier compris entre -2 147 483 648 et 2 147 483 647
(codage sur 32 bits soit 4 octets)
▪ Entier Long: Entier compris entre -infini et -
2 147 483 647 ou entre 2 147 483 648 et +infini
✓ Taille illimitée
▪ Float
✓ nombre flottant qui a la précision d'un double.
▪ Complexe
✓ Format: <real>+<imag>j
✓ Exemple: 6+3j
Opérations de base
Affectation
Chaînes de caractères (Strings)
▪ Une suite des caractères délimitée par des guillemets 3 types de guillemets :
'guillemets simples’
"guillemets Double"
"""guillemets Triple """ ou '''guillemets triple'‘’
– Exemples
>>> print('This string may contain a "')
This string may contain a "
>>> print("A ' is allowed")
A ' is allowed
>>> print("""Either " or ' are OK""")
Either " or ' are OK
Opérations arithmétiques
▪ Opérateurs : + - * / // ** % abs
Exemples:
>>> 5 + 3 # Addition
8
>>> 2 ** 8 # Exponentiation
256
>>> 13 / 4 # Division réelle
3.25
>>> 13 // 4 # Division entière (troncature)
3
>>> 13 % 4 # Reste
1
>>> abs(-3.5) # Valeur absolue
3.5
Comparaisons booléennes
▪ Comparaison : < <= > >= == !=
Exemple
>>> 4 > 1.5
1
>>> 'this' != 'that’
1
>>> 4+3j == 4-2j
0
>>> '5' == 5
0
>>> 0 < 10 < 20
1
Opérations booléennes
▪ Opérateurs : and or not
Algèbre booléenne
A B Not A A and B A or B
1 1 1 1
0
1 0 0 1
0 1 0 1
1
0 0 0 0
Opérations booléennes
Table de priorité des opérateurs
1 or 5 +,-
2 and 6 *,/
3 not
False
Opérations booléennes
Exercice 1
1 1
1 0
0 1
0 0
Opérations booléennes
Exercice 2
Évaluez les expressions logiques suivantes :
Synatxe Sémantique
s1 + s2 Concaténation de s1 et s2
>>> "Hello".ljust(8)
Left justify to given length.
"Hello "
>>> "Hello".rjust(8)
Right justify.
" Hello"
>>> "Hello".center(8)
Center, of course.
" Hello "
Conversion entre types
• La conversion de types permet de passer d’un type à l’autre
• La règle générale est de se servir du nom du type avec des parenthèses
Syntaxe Sémantique
bool(var) Converti ’var’ en un booléen
int(var) Converti ’var’ en un entier
float(var) Converti ’var’ en un flottant
str(var) Converti ’var’ en une chaîne de caractères
• Exemple
print() / input()
• print(msg) : imprime à l’écran une chaîne de caractères donnée en argument.
• input(msg): permet de récupérer une chaîne de caractères tapée par l’utilisateur
(retourne une chaine).
• Exemples
En résumé
du flux
Les structures conditionnelles
• Exemple 1
• Syntaxe
if <condition1>:
<blocs d'instructions 1>
elif <condition2>:
<blocs d'instructions 2>
else:
<blocs d'instructions 3>
Les structures conditionnelles
• Exemple 2
• Remarque
Il n’existe pas de switch en python et par conséquent on peut utilise
if … elif…else
Conditions
Types évaluant à faux :
• None
• False
• Tous les zéros : 0 , 0. , 0j
• Les listes/dictionnaires/chaines vides : [] , () , '' '', {}
• Tout objet dont la méthode bool() retourne False
condition = 5 -> True
• Tout objet dont la méthode len() retourne 0 condition = None -> False
Exemple condition = 0 -> False
condition = ‘’ -> False
condition = [] -> False
condition = () -> False
condition = {} -> False
Boucle for
• En Python, for est un itérateur sur des collections d’objets. Il est utilisé pour parcourir, dans l’ordre s’il
y en a un, les éléments de la collection
• Syntaxe:
for elem in iterable :
Instructions
Boucle infinie
Boucle while
• Exemples
Conteneurs standards
▪ Listes
▪ Tuples
▪ Ensembles
▪ Dictionnaires
Listes
• Les listes servent à stocker des collections ordonnées d’éléments avec possibilité
de les étendre ou de les manipuler facilement
Initialisation
• L1=[]; L2=list() #Listes vides
• L1= [1, 2, 3, 4, 5]; L2= ['point', 'triangle', ‘rectangle']
• L=[1, 4, ‘ali', 4, ‘laila', ['point', 6]]
• L=[3]*6 # L=[3, 3, 3, 3, 3, 3]
Concaténation
Manipulation des listes
Syntaxe Sémantique
L.pop(ind) Retirer l’élément qui est dans la position ' ind' de la liste L
Manipulation des listes
Exemples
cours=['Hist','Math','Phy','Ar','Sc']
print(cours) #['Hist', 'Math', 'Phy', 'Ar', 'Sc']
print(len(cours)) #5
print(cours[1]) #Math
print(cours[-2]) # Ar
print(cours[1:3]) #['Math', 'Phy']
print(cours[:2]) #['Hist', 'Math']
print(cours[2:]) #['Phy', 'Ar', 'Sc']
cours.append('Fr'); print(cours) #['Hist', 'Math', 'Phy', 'Ar', 'Sc', 'Fr']
p=cours.pop(); print(cours) #['Hist', 'Math', 'Phy', 'Ar', 'Sc']
print(p) #Fr
cours.insert(1,'Art');
print(cours) # ['Hist', 'Art', 'Math', 'Phy', 'Ar', 'Sc']
cours=['Hist','Math','Phy','Ar']
cours2=['Ang','Fr']
cours.insert(1,cours2); print(cours) # ['Hist', ['Ang', 'Fr'], 'Math', 'Phy', 'Ar']
#insertion en tant que liste et non en tant que valeurs
cours.remove(cours2); print(cours) # ['Hist', 'Math', 'Phy', 'Ar']
cours.extend(cours2); print(cours) # ['Hist', 'Math', 'Phy', 'Ar', 'Ang', 'Fr']
Manipulation des listes
Exemples
cours =['Hist','Math','Phy','Ar','Sc']
cours.reverse(); print(cours) #['Sc', 'Ar', 'Phy', 'Math', 'Hist']
cours.sort(); print(cours) #['Ar', 'Hist', 'Math', 'Phy', 'Sc']
cours.sort(reverse=True);
print(cours) #['Sc', 'Phy', 'Math', 'Hist', 'Ar']
cours =['Hist','Math','Phy','Math',‘Ar']
coursTrié=sorted(cours)
print(coursTrié) #['Ar', 'Hist', 'Math', 'Math', 'Phy']
print(cours) # ['Hist', 'Math', 'Phy', 'Math', 'Ar']
print(cours.index('Math')) #1
print(cours.index('FR')) #Erreur
print('Hist' in cours) #True
txt=' - '.join(cours)
print(txt) # Hist - Math - Phy - Math - Ar
cours2=txt.split(' - ')
print(cours2) # ['Hist', 'Math', 'Phy', 'Math', 'Ar']
Manipulation des listes
Exemples
cours =['Hist','Math','Phy']
for matiere in cours: print(matiere) #Hist Math Phys
for i,matiere in enumerate(cours): #
print(i,matiere)
L=[4,2,6,1]
L.sort(reverse=True)
print(L) # [6, 4, 2, 1]
print(min(L)) #1
print(sum(L)) #13
L=[2,5,7]
L1=3*L; print(L1) # [2, 5, 7, 2, 5, 7, 2, 5, 7]
L2=[3*x for x in L]; print(L2) # [6, 15, 21]
print([3*x for x in L if x>2]) # [15, 21]
Manipulation des listes
Suppression d’un élément
• remove: Retire la première occurrence d’un élément de la liste
Exemple: L=[1, 2, 4, 2]
L.remove(2)
print(L) # [1, 4, 2]
• del: supprime un élément de la liste à partir de son indice
Exemple: L=[1, 2, 4, 2]
del(L[2])
print(L) #[1, 2, 2]
• pop: supprime un élément à partir de son indice et le retourne
Exemple: L=[1, 2, 4, 2]
x=L.pop(2)
print(x) #4
print(L) # [1, 2, 2]
Manipulation des listes
Copie d’une liste
L =['Hist','Math','Phy','Ar','Sc']
T=L
print(L) #['Hist', 'Math', 'Phy', 'Ar', 'Sc']
print(T) #['Hist', 'Math', 'Phy', 'Ar', 'Sc']
T[2]="Fr"
print(T) #['Hist', 'Math', 'Fr', 'Ar', 'Sc']
print(L) #['Hist', 'Math', 'Fr', 'Ar', 'Sc']
L =['Hist','Math','Phy','Ar','Sc']
T=L[:] #T=L.copy()
T[2]="Fr"
print(T) #['Hist', 'Math', 'Fr', 'Ar', 'Sc']
print(L) #['Hist', 'Math', 'Phy', 'Ar', 'Sc']
Remarque:
Les listes sont mutables: ils peuvent subir des modifications
Tuples
• Ils permettent de grouper des éléments de différentes natures pour créer une structure
qui les englobe
Initialisation
Concaténation
T1,T2=(1,2),("ali","laila")
print("T1=",T1) # T1= (1, 2)
print("T2=",T2) # T2= ('ali', 'laila')
print("T1+T2=",T1+T2) # T1+T2= (1, 2, 'ali', 'laila')
Tuples
• Les tuples ne sont pas modifiables: Il sont immuables
Exemple
t =('Hist','Math','Phy','Ar','Sc')
print(t) #('Hist', 'Math', 'Phy', 'Ar', 'Sc')
print(t[2]) #Phy
print(t[2:]) #('Phy', 'Ar', 'Sc')
print(t[-2]) #Ar
t2=t
print(t2) #('Hist', 'Math', 'Phy', 'Ar', 'Sc')
t2[0]='Art' #Error: 'tuple' object does not support item assignment
print(t2)
print(t)
Ensembles
• Un ensemble est une collection d'objets sans répétition et sans ordre (donc sans numérotage).
Ce n'est pas une séquence
• On les note comme en maths avec des accolades {...}. Les éléments sont de types quelconques
Initialisation
• S= {5,'foo',(3,-2),7.4}
Remarque
• Les seules opérations que l’on peut faire sur les ensembles sont toutes les opérations
ensemblistes (appartenance, intersection, union, …)
Ensembles
Opérations
Syntaxe Sémantique Syntaxe Sémantique
• La clé doit être non mutable. Donc essentiellement des chaînes et des nombres
mais pas de listes. On peut utiliser des tuples comme clés à condition qu'ils ne
contiennent aucun objet mutable
• Il est aussi possible de demander si la clé existe, avec l'opérateur in
Exemple
Dictionnaires
Principales méthodes
Syntaxe Sémantique
len(d) Nombre d’éléments du dictionnaire
del(d[k]) Détruit l’entrée 'k' du dictionnaire
d.clear() Supprime tous les éléments du dictionnaire 'd'
d.copy() Renvoie une copie du dictionnaire 'd'
d.keys() Renvoie la liste des clés utilisées dans le dictionnaire
d.values() Renvoie la liste des valeurs utilisées dans le dictionnaire 'd'
d.has_key(k) Renvoie True si la clé passée en paramètre existe, False sinon
d.items() Renvoie une liste équivalente de tuples à partir du dictionnaire 'd'
d.pop(cle, val) Supprime et retourne d[cle] si la clé est présente sinon retourne val
d.update(d1) Ajoute les paires clé-valeur de 'd1' à 'd'
sorted(d) Retourne une liste ordonnée des clés du dictionnaire d
Dictionnaires
Exemple
etud={'nom':'ali','age':20,'cours':['math','phys']}
print(etud) #{'nom': 'ali', 'age': 20, 'cours': ['math', 'phys']}
print(len(etud)) #3
print(etud['nom']) # ali
print(etud['tel']) # Erreur
print(etud['cours']) # ['math', 'phys']
print(etud.get('nom')) # ali
print(etud.get('tel')) # None
print(etud.get('tel','clé inexistante')) # clé inexistante
etud['adresse']='agadir‘
etud['nom']='imad'
print(etud) # {'nom': 'imad', 'age': 20, 'cours': ['math', 'phys'], 'adresse': 'agadir'}
etud2={'nom':'laila','pays':'maroc'}
etud.update(etud2)
print(etud) # {'nom': 'laila', 'age': 20, 'cours': ['math', 'phys'], 'adresse': 'agadir',
'pays': 'maroc'}
del(etud[‘cours'])
print(etud) # {'nom': 'laila', 'age': 20, 'adresse': 'agadir', 'pays': 'maroc'}
Dictionnaires
Exemple
etud={'nom':'ali','age':20,'cours':['math','phys']}
x=etud.pop('nom','clé inexistante')
print(x) #ali
print(etud) #{'age': 20, 'cours': ['math', 'phys']}
print(etud.pop('tel',-1)) #-1
etud={'nom':'ali','age':20,'cours':['math','phys']}
print(etud.keys()) #dict_keys(['nom', 'age', 'cours'])
print(etud.values()) #dict_values(['ali', 20, ['math', 'phys']])
for i in etud: #
print(i,":",etud[i])
Test d'appartenance
Container Itérable Ordonné Indexable Modifiable
et fonction len()
2.
3.
Exemples
• Les parenthèses sont obligatoires pour appeler une fonction
Exemple:
• Remarque: Une fonction qui n'a pas de return renvoie par défaut None
Arguments d’une fonction
• Les arguments d'une fonction ne sont pas typés a priori mais sont substitués
dynamiquement dans le code de la fonction lors de l’exécution
• On peut inverser les arguments lors d’un appel si on les nomme
Exemple:
def puissance(a, b):
return a**b
print(puissance(2,3)) #affiche 8
x=puissance(b=3, a=2)
print(x) #affiche 8
Arguments nommés
• Les arguments nommés permettent de donner des noms et des valeurs par défaut à certains
arguments d’une fonction
• Les arguments nommés deviennent optionnels lors de l’appel à la fonction
• Exemples
1. def afficher(msg,nom="ali"):
return "{} {}".format(msg,nom)
print(afficher("bonjour")) #bonjour ali
print(afficher("bonjour","laila")) #bonjour laila
2. def F(a,b,c=0,d=2):
return a+b-c*d
x=F(10,5); print(x) #15
y=F(5,10,d=3); print(y) #15
z=F(5,10,d=1,c=2); print(z) #13
• Les arguments non-nommés doivent être placés, toujours dans le même ordre, au début de
la fonction et les arguments nommés toujours à la fin
Fonction variadique
• Une fonction variadique est une fonction dont le nombre d’arguments est variable et donc on
peut y mettre le nombre d’arguments que l’on veut
• L’opérateur * convertit des arguments non nommés en tuple
• Exemple 2. def sum(*args):
s=0
1. def afficher(*args):
for x in args: s+=x
print(args)
return s
afficher('pomme','orange’) #('pomme', 'orange')
print(sum(2,4)) #6
afficher('laila',30,True,'salut') #('laila', 30, True, 'salut')
print(sum(2,3,10,5,4)) #24
2. def test(**args):
for k in args:
print(k," : ",args[k])
test(nom='ali',age=30,adresse='agadir')
etudiant={'nom':'laila','age':20,'cours':['Math','Phys']}
test(**etudiant)
Fonction variadique
Exemple
def afficher(*args,**kargs):
print(args)
print(kargs)
#('Math', 'Phys’)
afficher('Math','Phys',nom='ali',age=30)
{'nom': 'ali', 'age': 30}
cours=['Math','Pys']
info={'nom':'ali','age':30}
# (['Math', 'Pys'], {'nom': 'ali', 'age': 30})
afficher(cours,info)
{}
def nbrJour(mois,annee):
""" Retourne le nombre de jours dans le mois et l’année spécifiés"""
if not 1<=mois<=12: return 'mois invalide'
elif mois==2 and is_leap(annee): return 29
else: return nbr_jours[mois-1]
print(nbrJour(2,2000)) #29
print(nbrJour(2,2017)) #28
Portée d’une variable
Variable locale/globale
• La portée d’une variable correspond à l’ensemble des lignes dans lesquelles la variable peut être appelée
• Lorsqu’on est en dehors de la portée d’une variable et que l’on fait appel à elle, le programme provoque
une erreur
• Une variable est dite “locale” si sa portée recouvre seulement une partie du programme
• Exemple
➢ mylist1 = [5, 3, 9, 4, 1]
mylist2 = ['a','w','d','e']
for index,char in zip(mylist1,mylist2):
print (index ,char)
Les modules
▪ Importer un module
▪ Créer un module
▪ Modules standards
Importer un module
• Les modules Python permettent de grouper et de rendre facilement réutilisable
du code Python
• Différentes manières d'importer un module
➢ import module1 , module2 # Importe les modules
➢ import module1 as md1 #Importe un module en lui donnant un
nom
➢ from module import func1,func2 # Importe les fonctions
➢ from module import * # Importe toutes les fonctions du module
• Exemple
Créer un module
Écrire et utiliser un module
• Créer un module revient à créer un fichier au nom du module que l’on désire
créer (suivi de ’.py’), puis d’y inclure les fonctions désirées
• Exemple
• Remarque: si du code Python se trouve en dehors de toute fonction dans le module, il sera exécuté
à son chargement. Pour éviter que cela se produise, il faut “protéger” le code avec :
#Fichier my_module.py
if __name__=="__main__":
# code exécuté seulement si on lance le fichier '.py ',
# pas si on l’ importe dans un autre fichier .
Modules standards
• Quelques modules standards:
✓ String
✓ Math
✓ Time
✓ Sys
✓ Os
▪ Syntaxe de open()
La syntaxe de la méthode open() est la suivante :
• 'r' : Lecture. Ouvre un fichier pour lire. Le fichier doit exister, sinon une exception est levée.
• 'w' : Écriture. Ouvre un fichier pour écrire. Si le fichier existe, il est effacé. Si le fichier n'existe pas, il
est créé.
• 'a' : Ajout. Ouvre un fichier pour ajouter du contenu à la fin. Si le fichier n'existe pas, il est créé.
• 'x' : Écriture exclusive. Crée un nouveau fichier et l'ouvre en écriture. Si le fichier existe, une exception
est levée.
• 'b' : Mode binaire. Utilisé conjointement avec les modes ci-dessus ('rb', 'wb', 'ab', 'xb') pour lire ou
écrire des fichiers binaires (images, vidéos, etc.).
• '+' : Lecture/Écriture. Permet de lire et écrire dans le fichier (utilisé en combinaison avec 'r', 'w', 'a', 'b').
Modes d'ouverture
▪ Lecture : 'r'
Sans with Avec with
NB : Lorsque vous ouvrez un fichier sans utiliser with, vous devez gérer l'ouverture et la
fermeture du fichier.
Modes d'ouverture
▪ Écriture : 'w' ▪ Ajout : 'a'
▪ Lecture/Écriture : 'r+'
with open('fichier.txt', 'r+') as file:
contenu = file.read()
print("Contenu initial :")
print(contenu)
file.write('\nAjout de texte.')
Méthodes de lecture
▪ file.readline([size])
• Exemple :
print(ligne)
Méthodes d'écriture
▪ file.readlines()
• Lit toutes les lignes du fichier et les retourne sous forme de liste.
• Exemple :
• Chaque élément de la liste est écrit dans le fichier sans ajout automatique de saut de ligne (\n).
• Exemple :
• Exemple :
spécifié. Si aucun séparateur n'est spécifié, split() utilise par défaut les espaces
split() pour diviser les lignes lues dans un fichier en différentes parties en fonction
d'un séparateur spécifique. Par exemple, dans un fichier CSV (valeurs séparées par des
virgules), split(',') peut être utilisé pour diviser chaque ligne en différentes
valeurs.
L’utilisation d’Open() avec Split()
# Ouvrir le fichier en mode lecture
print(valeurs)
Le module OS
Le module os
Le module os en Python fournit une variété de fonctions pour interagir avec le
système d'exploitation. Cela inclut des fonctionnalités pour gérer les fichiers et
les répertoires, interagir avec le système d'exploitation, et obtenir des
informations sur le système.
Importation du module os
Pour utiliser le module os, vous devez l'importer au début de votre script :
import os
Gestion des répertoires
▪ Obtenir le chemin du répertoire courant
import os
chemin_courant = os.getcwd()
import os
contenu = os.listdir('.’)
Print (contenu)
Résultat : Une liste des fichiers et répertoires dans le répertoire courant, par exemple
: ['fichier1.txt', 'dossier1', 'fichier2.py']
Gestion des répertoires
▪ Changer de répertoire
La fonction os.chdir() permet de changer le répertoire courant. Voici un exemple où
nous changeons le répertoire à /chemin/du/repertoire :
import os
os.chdir('/chemin/du/repertoire’)
print("Nouveau répertoire courant :", os.getcwd())
import os
os.mkdir('nouveau_repertoire’)
print("Répertoire créé : 'nouveau_repertoire'")
import os os.makedirs('dossier/ss_dossier1/ss_dossier2’)
import os
os.rmdir('repertoire_a_supprimer’)
print("Répertoire supprimé : 'repertoire_a_supprimer'")
import os
os.remove('fichier_a_supprimer.txt’)
print("Fichier supprimé : 'fichier_a_supprimer.txt'")
import os
os.rename('ancien_nom.txt', 'nouveau_nom.txt’)
print("Fichier renommé : 'ancien_nom.txt' en 'nouveau_nom.txt'")
import os
os.replace('fichier_a_deplacer.txt', '/nouveau/chemin/fichier_a_deplacer.txt’)
import os
nom_os = os.name
Résultat : Par exemple, 'posix' pour les systèmes de type Unix/Linux ou 'nt' pour les systèmes
Windows.
Manipulation de chemins
▪ Joindre des parties de chemin
La fonction os.path.join() permet de joindre des parties de chemin :
import os
import os
import os
import os
for chemin_racine, repertoires, fichiers in os.walk('.’):
print(f"Chemin racine : {chemin_racine}")
print(f"Répertoires : {repertoires}")
print(f"Fichiers : {fichiers}")
print("-" * 20)
Résultat : Affiche les fichiers et répertoires trouvés dans le répertoire courant et ses sous-répertoires.
L’utilisation d’os avec open()
import os
repertoire_donnees = 'données'
nom_fichier = 'fichier.txt'
chemin_fichier = os.path.join(repertoire_donnees, nom_fichier)
with open(chemin_fichier, 'r') as file:
for ligne in file:
print(ligne.strip())
L’utilison de os.path.join() pour construire le chemin. Cela garantit que le chemin est
correctement formaté pour le système d'exploitation, rendant le code plus portable et robuste.