Utiliser os.access()
avec os.R_OK
Dans cette étape, nous allons utiliser la fonction os.access()
en Python pour vérifier si un fichier a des autorisations de lecture. La fonction os.access()
prend deux arguments : le chemin du fichier et un indicateur d'autorisation. Nous allons utiliser os.R_OK
pour vérifier les autorisations de lecture.
Tout d'abord, créons un nouveau fichier Python nommé check_permissions.py
dans le répertoire ~/project
. Ouvrez l'éditeur VS Code et ajoutez le code suivant au fichier :
import os
file_path = "my_script.py"
## Vérifier si le fichier existe
if not os.path.exists(file_path):
print(f"Erreur : Le fichier '{file_path}' n'existe pas.")
else:
## Vérifier si le fichier a des autorisations de lecture
if os.access(file_path, os.R_OK):
print(f"Le fichier '{file_path}' a des autorisations de lecture.")
else:
print(f"Le fichier '{file_path}' n'a pas des autorisations de lecture.")
Enregistrez le fichier. Ce script vérifie d'abord si le fichier my_script.py
existe. S'il existe, il utilise ensuite os.access()
avec os.R_OK
pour vérifier si le fichier a des autorisations de lecture. Le script affichera un message indiquant si le fichier a ou non des autorisations de lecture.
Maintenant, exécutez le script depuis le terminal :
python check_permissions.py
Vous devriez voir la sortie suivante :
Le fichier 'my_script.py' a des autorisations de lecture.
Cela est dû au fait que, par défaut, le fichier my_script.py
a des autorisations de lecture pour le propriétaire, le groupe et les autres.
Maintenant, modifions les autorisations du fichier my_script.py
pour supprimer les autorisations de lecture pour tous les utilisateurs sauf le propriétaire. Nous pouvons le faire en utilisant la commande chmod
dans le terminal.
chmod 600 my_script.py
Cette commande définit les autorisations de my_script.py
en lecture et écriture uniquement pour le propriétaire (600 en notation octale).
Maintenant, exécutez à nouveau le script check_permissions.py
:
python check_permissions.py
Vous devriez maintenant voir la sortie suivante :
Le fichier 'my_script.py' n'a pas des autorisations de lecture.
Cela est dû au fait que nous avons supprimé les autorisations de lecture pour le groupe et les autres. La fonction os.access()
identifie correctement que le fichier n'a plus d'autorisations de lecture pour l'utilisateur exécutant le script (qui est labex
).
Enfin, restaurons les autorisations originales du fichier my_script.py
:
chmod 644 my_script.py
Cette commande définit les autorisations de my_script.py
en lecture et écriture pour le propriétaire et en lecture seule pour le groupe et les autres (644 en notation octale).