Académique Documents
Professionnel Documents
Culture Documents
2. LES CHEMINS
1- CHEMIN ABSOLU : LE CHEMIN ABSOLU DE NOTRE RÉPERTOIRE PRÉDÉFINI.
CODE : import os ou avec la méthode abspath()
from pathlib import path import os
mydirectory = "." abspath= os.path.abspath("app.py")
p =path(mydirectory) print(abspath)
print(p.absolute())
2- chemin relatif : le chemin relatif, quant à lui,est la position d’un fichier à partir du dossier en cours de lecture (répertoire
courant).
code :
print(relative_path)
MYDIRECTORY = "/TPPYTHON/GESTIONDESFICHIERS"
P = PATH(MYDIRECTORY)
PRINT(P.PARENT)
4- CHEMIN EN ADRESSE URI
Python nous permet de convertir un chemin d’un fichier en URI (uniform resource identifier) à l’aide de la méthode as_uri();
code:
mydirectory= "/tppython/gestiondesfichiers/scraping.py"
p = path(mydirectory)
print(p.as_uri())
p = path(mydirectory)
fullpath=p.absolute()
print(fullpath.as_uri())
5- Récupération du contenu d'un dossier :
Sur python ,il y a une possibilité de récupérer le contenu d’un répertoire en appliquant la methode scandir() comme suit:
code :
import os
mydirectory="/tppython/gestiondesfichiers"
p = path(mydirectory)
for x in os.scandir(p):
print(x)
Pour filtrer et afficher le contenu d’un répertoire selon un type de fichier qu’on souhaite ,la méthode glob() peut servir comme suit:
code:
p = path(='/tppython/gestiondesfichiers')
for f in list(p.glob('**/*.py’)):
print(f)
6- Compresser et décompresser les fichiers 7- Déplacer ou copier un fichier
En fait ,le module "shutil« que nous venons d'utiliser est un autre outil utile pour
• Si vous êtes un expert python, aucun logiciel zip ne doit la gestion du système en python.
être installé sur votre ordinateur . Parce que quelques
Par exemple,si nous devons déplacer un fichier , la méthode shutdown.Move()
lignes de code python suffisent pour gérer la fermeture et
Code:
la décompression des fichiers.
import os
Code: from pathlib import path
import shutil
From zipfile import zipfile
source = '/users/yangsmac/pycharmprojects/pythonproject/test1.py'
tz.write(path('test1.py')) print(os.path.exists(source))
# true
Le code ci-dessus montre comment compresser un fichier
avec le module zipfile intégré. Cependant ,pour print(os.path.exists(target))
shutil.move(source, target)
Code: from zipfile import zipfile
print(os.path.exists(source))
With zipfile('test1.zip') as tz:
# false
tz.extractall()
print(os.path.exists(target))
# true
8. RÉCUPÉRATION DU CONTENU D'UN DOSSIER
Le module os en python fournit des fonctions pour interagir avec les ystème d'exploitation. Le système
d'exploitation fait partie des modules utilitaires standard de python. Ce module fournit un moyen portable
d'utiliser les fonctionnalités dépendantes du système d'exploitation.
La méthode os.Scandir() en python est utilisée pour obtenir un itérateur d'objets os.Direntry
correspondant aux entrées du répertoire donné par le chemin spécifié.
Les entrées sont affichées dans un ordre arbitraire et les entrées spéciales '.'Et'..‘ Ne sont pas incluses.
CODE:
import os
path = '/home/ihritik’
obj = os.scandir(path)
if entry.is_dir() or entry.is_file():
print(entry.name)
obj.close()
3. La gestion des threads
Import threading
code:
def process_one():
import time
i=0
def process_one():
while i<10:
i=0 print(“bonjour”)
i+=1
print(“bonjour”)
def process_two():
time.sleep(0.10)
i=0
i+=1 while i<10:
def process_two(): print(“bonsoir”)
i=0 time.sleep(0.3)
i+=1
while i<10:
th1=threading.Thread(target=process_one) #cree les thread
print(“bonsoir”)
th2=threading.Thread(target=process_two)
time.sleep(0.10) th1.start() #execute les thread
i+=1 th2.start()
th2.join()
Process_two()
print(“fin du programme”)
class threads : import time
print(threading.current_thread()) print(lt)
time.sleep(0.3) time.sleep(0.3)
i +=1 i +=1
th2.start() th2.start()
th1.join() th1.join()
th2.join() th2.join()
SORTIE 1 : 1
SORTIE 2 : 2
3 utiliser le verrouillage pour éviter la condition de concurrence
Une condition de concurrence se produit lorsque deux threads tentent d'accéder simultanément à une variable
partagée .Le premier thread lit la valeur de la variable partagée.
Le deuxième thread lit également la valeur de la même variable partagée . Ensuite , les deux threads tentent de
modifier la valeur de la variable partagée . Et ils se précipitent pour voir quel thread écrit une valeur dans la
variable en dernier.
La valeur du thread qui écrit en dernier dans la variable partagée est conservée car elle écrase la valeur écrite par
le thread précédent.
Pour éviter les conditions de concurrence , vous pouvez utiliser la classe lock du module de threading. Une
serrure a deux états : verrouillée et déverrouillée(lock/unlock)
Comment ça fonctionne:
3.Troisièmement, acquérez un verrou avant d'accéder à la variable compteur et relâchez-le après la mise à jour
de la nouvelle valeur.
code: # create threads (créer des fils de discussion)
Python est un langage merveilleux pour la création de scripts et l'automatisation des flux de travail et il est doté d'outils
utiles prêts à l'emploi avec la bibliothèque standard Python. Une chose courante à faire, en particulier pour un
administrateur système, consiste à exécuter des commandes shell.
Mais ce qui se retrouvera généralement dans un fichier bash ou batch peut également être fait en Python.
La première et la plus simple approche pour exécuter une commande shell consiste à utiliser os.System():
code:
import os
os.system('ls -l')
Si vous enregistrez ceci en tant que script et que vous l'exécutez, vous verrez la sortie dans la ligne de commande. Le
problème avec cette approche réside dans sa rigidité puisque vous ne pouvez même pas obtenir la sortie résultante en
tant que variable.