Hướng dẫn python search for a directory - python tìm kiếm một thư mục

Tôi có một cấu trúc thư mục giống như cấu trúc được đưa ra dưới đây.

Show
             MainFolder 
                 |
               [lib] 
             /   |   \
           [A]  [B]  [C] -- file1.so 
            |     |         file2.so
       file1.so   file1.so
       file2.so   file2.so    
    

    Tôi đang cố gắng tìm kiếm thư mục 'lib' trong cấu trúc đó có thể không có ở đó. Vì vậy, tôi đang sử dụng phần sau để kiểm tra sự hiện diện của thư mục 'lib':

       if os.path.isdir(apkLocation + apkFolder + '/lib/'):
    

    Nếu thư mục LIB tồn tại, thì tôi tiếp tục tìm kiếm các thư mục bên trong 'lib'. Tôi phải lưu trữ tên của thư mục A, B và C và tìm các tệp kết thúc bằng '.so' có đường dẫn nên được lưu trữ dưới dạng /lib/a/file1.so,/lib/a/file2.so và vì vậy trên.

     if os.path.isdir(apkLocation + apkFolder + '/lib/'):
       for root, dirs, files in os.walk(apkLocation + apkFolder):
                for name in files:
                    if name.endswith(("lib", ".so")):
                        print os.path.abspath(name) 
    

    Điều này cho tôi một

                      file1.so
                      file2.so
                      file1.so
                      file2.so
                      file1.so
                      file2.so
    

    Kết quả mong muốn:

               /lib/A/file1.so
               /lib/A/file2.so
               /lib/B/file1.so
               /lib/B/file2.so
               /lib/C/file1.so
               /lib/C/file2.so
    

    và các thư mục A, B và C sẽ được lưu riêng biệt.


    Python có thể tìm kiếm tên tệp trong một đường dẫn được chỉ định của HĐH. Điều này có thể được thực hiện bằng cách sử dụng HĐH mô -đun với các chức năng đi bộ (). Điều này sẽ lấy một đường dẫn cụ thể làm đầu vào và tạo ra 3-tuple liên quan đến dirpath, dirnames và tên tệp.

    Trong ví dụ dưới đây, chúng tôi đang tìm kiếm một tệp có tên SMPL.htm bắt đầu tại thư mục gốc có tên là D D: \. Hàm os.walk () tìm kiếm toàn bộ thư mục và từng thư mục con của nó để xác định vị trí tệp này. Kết quả là chúng tôi thấy rằng tệp có mặt trong cả thư mục chính và cả trong một thư mục con. Chúng tôi đang chạy chương trình này trong HĐH Windows.

    Thí dụ

    import os
    
    def find_files(filename, search_path):
       result = []
    
    # Wlaking top-down from the root
       for root, dir, files in os.walk(search_path):
          if filename in files:
             result.append(os.path.join(root, filename))
       return result
    
    print(find_files("smpl.htm","D:"))

    Đầu ra

    Chạy mã trên cho chúng ta kết quả sau -

    ['D:TP\smpl.htm', 'D:TP\spyder_pythons\smpl.htm']

    Hướng dẫn python search for a directory - python tìm kiếm một thư mục

    Cập nhật vào ngày 17 tháng 10 năm 2019 12:44:29

    • Câu hỏi và câu trả lời liên quan
    • Tìm kiếm tệp bằng C#
    • Kết hợp so với tìm kiếm trong Python
    • Làm thế nào để tìm kiếm từ điển Python hoạt động?
    • Xử lý tệp netrc bằng cách sử dụng python
    • Tìm kiếm mẫu ngây thơ
    • Đọc và viết tệp CSV bằng Python
    • Làm thế nào để tìm một tệp bằng Python?
    • Làm thế nào để trích xuất tiện ích mở rộng tệp bằng Python?
    • Làm thế nào để đổi tên một tệp bằng Python?
    • Làm thế nào để xóa một tệp bằng Python?
    • Làm thế nào để xóa một tệp bằng Python?
    • Chương trình C ++ để thực hiện tìm kiếm bằng danh sách tự tổ chức
    • Tìm kiếm một truy vấn bằng tìm kiếm nhị phân trong JavaScript
    • Làm thế nào để tạo một tệp trùng lặp của một tệp hiện có bằng Python?
    • Giới thiệu về Thuật toán tìm kiếm

    Cải thiện bài viết

    Lưu bài viết

  • Đọc
  • Bàn luận
  • Cải thiện bài viết

    Lưu bài viết

    Đọc
    This code searches all the folders in the file it’s being run. If you want some other kinds of files just change the extension.
     

    Python3

    import os

    dir_path ____10

       if os.path.isdir(apkLocation + apkFolder + '/lib/'):
    
    1

       if os.path.isdir(apkLocation + apkFolder + '/lib/'):
    
    2
       if os.path.isdir(apkLocation + apkFolder + '/lib/'):
    
    3
       if os.path.isdir(apkLocation + apkFolder + '/lib/'):
    
    4
       if os.path.isdir(apkLocation + apkFolder + '/lib/'):
    
    5

       if os.path.isdir(apkLocation + apkFolder + '/lib/'):
    
    6
       if os.path.isdir(apkLocation + apkFolder + '/lib/'):
    
    2
       if os.path.isdir(apkLocation + apkFolder + '/lib/'):
    
    8
       if os.path.isdir(apkLocation + apkFolder + '/lib/'):
    
    4
     if os.path.isdir(apkLocation + apkFolder + '/lib/'):
       for root, dirs, files in os.walk(apkLocation + apkFolder):
                for name in files:
                    if name.endswith(("lib", ".so")):
                        print os.path.abspath(name) 
    
    0

     if os.path.isdir(apkLocation + apkFolder + '/lib/'):
       for root, dirs, files in os.walk(apkLocation + apkFolder):
                for name in files:
                    if name.endswith(("lib", ".so")):
                        print os.path.abspath(name) 
    
    1
     if os.path.isdir(apkLocation + apkFolder + '/lib/'):
       for root, dirs, files in os.walk(apkLocation + apkFolder):
                for name in files:
                    if name.endswith(("lib", ".so")):
                        print os.path.abspath(name) 
    
    2
       if os.path.isdir(apkLocation + apkFolder + '/lib/'):
    
    8
     if os.path.isdir(apkLocation + apkFolder + '/lib/'):
       for root, dirs, files in os.walk(apkLocation + apkFolder):
                for name in files:
                    if name.endswith(("lib", ".so")):
                        print os.path.abspath(name) 
    
    4
     if os.path.isdir(apkLocation + apkFolder + '/lib/'):
       for root, dirs, files in os.walk(apkLocation + apkFolder):
                for name in files:
                    if name.endswith(("lib", ".so")):
                        print os.path.abspath(name) 
    
    5
     if os.path.isdir(apkLocation + apkFolder + '/lib/'):
       for root, dirs, files in os.walk(apkLocation + apkFolder):
                for name in files:
                    if name.endswith(("lib", ".so")):
                        print os.path.abspath(name) 
    
    6

     if os.path.isdir(apkLocation + apkFolder + '/lib/'):
       for root, dirs, files in os.walk(apkLocation + apkFolder):
                for name in files:
                    if name.endswith(("lib", ".so")):
                        print os.path.abspath(name) 
    
    7
     if os.path.isdir(apkLocation + apkFolder + '/lib/'):
       for root, dirs, files in os.walk(apkLocation + apkFolder):
                for name in files:
                    if name.endswith(("lib", ".so")):
                        print os.path.abspath(name) 
    
    8
     if os.path.isdir(apkLocation + apkFolder + '/lib/'):
       for root, dirs, files in os.walk(apkLocation + apkFolder):
                for name in files:
                    if name.endswith(("lib", ".so")):
                        print os.path.abspath(name) 
    
    9
                      file1.so
                      file2.so
                      file1.so
                      file2.so
                      file1.so
                      file2.so
    
    0
                      file1.so
                      file2.so
                      file1.so
                      file2.so
                      file1.so
                      file2.so
    
    1
                      file1.so
                      file2.so
                      file1.so
                      file2.so
                      file1.so
                      file2.so
    
    0
                      file1.so
                      file2.so
                      file1.so
                      file2.so
                      file1.so
                      file2.so
    
    3
                      file1.so
                      file2.so
                      file1.so
                      file2.so
                      file1.so
                      file2.so
    
    4
       if os.path.isdir(apkLocation + apkFolder + '/lib/'):
    
    8
                      file1.so
                      file2.so
                      file1.so
                      file2.so
                      file1.so
                      file2.so
    
    6

    HĐH không phải là một thư viện bên ngoài trong Python.Vì vậy, tôi cảm thấy đây là cách đơn giản nhất và tốt nhất để làm điều này. Bài viết này được đóng góp bởi Soumith Kumar.Nếu bạn thích GeekSforGeeks và muốn đóng góp, bạn cũng có thể viết một bài viết bằng Write.GeekSforGeek.org hoặc gửi bài viết của bạn.Xem bài viết của bạn xuất hiện trên trang chính của GeekSforGeek và giúp các chuyên viên máy tính khác. Xin vui lòng viết nhận xét nếu bạn tìm thấy bất cứ điều gì không chính xác hoặc bạn muốn chia sẻ thêm thông tin về chủ đề được thảo luận ở trên. & NBSP;
    This article is contributed by soumith kumar. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to . See your article appearing on the GeeksforGeeks main page and help other Geeks.
    Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.