Le module os
permet d'interagir avec le système d'exploitation hôte sur lequel s'exécute l'environnement Python.
Par exemple, il vous est possible de manipuler le système de fichiers du système d'exploitation. Dans ce cas, le module stat
vous permettra d'obtenir des informations complémentaires sur les fichiers présents sur ce système de fichiers.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
#!/usr/bin/python3 import sys import os import stat def get_filename(path): return path.split(os.sep)[-1] def display_file(path, level): st = os.stat(path) rights = "" if st.st_mode & stat.S_IFDIR: rights += "d" else: rights += "-" if st.st_mode & stat.S_IRUSR: rights += "r" else: rights += "-" if st.st_mode & stat.S_IWUSR: rights += "w" else: rights += "-" if st.st_mode & stat.S_IXUSR: rights += "x" else: rights += "-" size = st.st_size short_name = get_filename(path) print("%s %9d %s%s" % (rights, size, level, short_name)) def scan(path, level=""): display_file(path, level) try: files = os.listdir(path) for file in files: sub_path = path + os.sep + file if os.path.isdir(sub_path): scan(sub_path, level + " ") else: display_file(sub_path, level + " ") except OSError: print(level + " Access is denied !!!") if len(sys.argv) == 2: folder = sys.argv[1] else: folder = os.getcwd() folder = os.path.abspath(folder) if not os.path.isdir(folder): print("Not a folder: " + folder) exit() scan(folder) |
Pour lancer cet exemple, veuillez procéder ainsi :
$> python3 Listing.py folder drwx 4096 folder -rw- 835 Listing.py -rwx 1359 Listing2.py $>
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :