Python Os.Walk: Cara Melintasi Pohon Direktori – Codewithaden

Modul OS Python menyediakan metode untuk berinteraksi dengan sistem operasi. Modul OS berada di bawah modul utilitas standar Python. OS Python Modul menyediakan fungsi untuk membuat dan menghapus direktori, mengambil file dan isinya, mengubah dan mengidentifikasi direktori saat ini, dll.

Untuk bekerja dengan modul OS di Python, Anda perlu impor itu dulu. Itu os.walk () adalah salah satu metode modul OS yang paling banyak digunakan, yang akan kita diskusikan dalam artikel ini.

Python Os.Walk

Itu os.walk () adalah metode python bawaan yang menghasilkan nama file di pohon indeks file dengan berjalan baik dari atas atau bottom-up. Setiap direktori di pohon yang berakar di bagian atas direktori menghasilkan 3-tuple, yaitu Dirpath , Dirnames , dan nama file

  1. akar: Ini mencetak direktori hanya dari apa yang Anda tentukan. Anda perlu menentukan jalan yang menunjukkan di mana ia harus mulai berjalan dan mencetak.
  2. Dirs: Ini mencetak sub-direktori dari akar.
  3. File: Ini mencetak semua file dari root dan direktori.

Sintaksis

os.walk(top, topdown=True, onerror=None, followlinks=False)
 

Parameter

  1. atas -Setiap direktori yang berakar pada direktori menghasilkan 3-tupel, misalnya, (Dirpath, Dirnames, FileName).

  2. Perintahkan ke bawah – Ini adalah argumen opsional di mana jika ada BENAR atau tidak ditentukan, direktori dipindai dari atas ke bawah. Jika topdown diterapkan pada PALSU , direktori dianggap bottom-up.

  3. Onerror – Ini adalah argumen opsional yang menunjukkan kesalahan untuk melanjutkan dengan berjalan atau mengangkat pengecualian untuk membatalkan jalan.

  4. followlinks – Ini mengunjungi direktori yang ditunjukkan oleh symlink, jika diatur ke BENAR

Nilai pengembalian

Ini mengembalikan 3-tuple (dirpath, dirnames, nama file).

Cara melintasi direktori di python

Untuk melintasi direktori di Python, gunakan os.walk () fungsi. Fungsi os.walk () menerima empat argumen dan mengembalikan 3-tuple, termasuk Dirpath, Dirnames, dan nama file.

Contoh

import os
if __name__ == "__main__":
    for (root, dirs, files) in os.walk('/Users/krunal/Desktop/code/pyt/database', topdown=True):
        print("The root is: ")
        print(root)
        print("The directories are: ")
        print(dirs)
        print("The files are: ")
        print(files)
        print('--------------------------------')
 

Keluaran

The root is:
/Users/krunal/Desktop/code/pyt/database
The directories are:
['.vscode']
The files are:
['shows.csv', 'Netflix.csv', 'marketing.csv', 'new_file.json', 
'data.json', 'Netflix', 'shows.db', 'app.py', 'purchase.csv', 'final.zip', 'sales.csv']
--------------------------------
The root is:
/Users/krunal/Desktop/code/pyt/database/.vscode
The directories are:
[]
The files are:
['settings.json']
-------------------------------- 

Secara default, Python akan berjalan di pohon direktori dalam urutan top-down (direktori akan diteruskan kepada Anda untuk pemrosesan), dan kemudian Python akan turun ke sub-direktori apa pun.

Saat Topdown BENAR , penelepon dapat memodifikasi Dirnames daftar di tempat (mungkin menggunakan Del atau mengiris penugasan), dan berjalan() hanya akan berulang -ulang ke subdirektori yang namanya tetap dalam nama dirnam; Ini dapat digunakan untuk memangkas pencarian, memaksakan urutan kunjungan tertentu, atau bahkan untuk menginformasikan berjalan() tentang direktori yang dibuat atau digantian nama penelepon sebelum dilanjutkan berjalan() lagi.

Memodifikasi Dirnames Saat Topdown PALSU tidak efektif karena dalam mode bottom-up, direktori dalam nama dirname dihasilkan sebelum dirpath itu sendiri dikembangkan.

Jika Anda mengubah nilai Perintahkan ke bawah ke PALSU , maka itu akan memberi Anda hasil berikut.

import os
if __name__ == "__main__":
    for (root, dirs, files) in os.walk('/Users/krunal/Desktop/code/pyt/database', topdown=False):
        print("The root is: ")
        print(root)
        print("The directories are: ")
        print(dirs)
        print("The files are: ")
        print(files)
        print('--------------------------------')
 

Keluaran

The root is:
/Users/krunal/Desktop/code/pyt/database/.vscode
The directories are:
[]
The files are:
['settings.json']
--------------------------------
The root is:
/Users/krunal/Desktop/code/pyt/database
The directories are:
['.vscode']
The files are:
['shows.csv', 'Netflix.csv', 'marketing.csv', 'new_file.json', 'data.json', 
'Netflix', 'shows.db', 'app.py', 'purchase.csv', 'final.zip', 'sales.csv'] 

Seperti yang dapat Anda lihat dari jalur yang mengembalikan jalur, daftar direktori dan daftar file dari bawah ke atas. Secara default, kesalahan dari listdir () fungsi diabaikan. Namun, jika parameter opsional ONERROR ditentukan, itu harus menjadi fungsinya; itu akan dipanggil dengan satu argumen, Oserror contoh.

Ini dapat melaporkan kesalahan untuk melanjutkan berjalan atau menaikkan pengecualian untuk membatalkannya. Perhatikan bahwa nama file tersedia sebagai atribut nama file dari objek pengecualian.

Itu untuk tutorial fungsi Python OS.Walk ().

Artikel ini berasal dari website Winpoin, dan kemudian diterjemahkan ke bahasa indonesia, baca artikel asli disini

Leave a Reply

Your email address will not be published. Required fields are marked *