Python中os.listdir()获取指定目录中的文件和子目录的列表

作者:

文章目录
  • os.listdir() 是 Python os 模块中的一个函数,用于获取指定目录中的文件和子目录的列表。它返回一个包含 目录内容 的 列表,但不会递归进入子目录。
  • import os os.listdir(path=”.”)
  • 如果你想获取特定类型的文件(如 .txt、.jpg 等),可以结合 glob 或 fnmatch 进行筛选。
  • import os import fnmatch path = “/path/to/directory” all_files = os.listdir(path) # 只匹配 .txt 文件 txt_files = [f for f in all_files if fnmatch.fnmatch(f, “*.txt”)] print(txt_files)
  • os.listdir() 只返回 当前目录 下的内容,不会递归进入子目录。如果你需要遍历所有子目录,可以使用 os.walk()。 import os path = “/path/to/directory” for root, dirs, files in os.walk(path): print(“Current directory:”, root) print(“Subdirectories:”, dirs) print(“Files:”, files)
  • 可以对 os.listdir() 返回的列表进行排序,按照名称、大小或修改时间排序。
  • Python 3.5 以后,推荐使用 os.scandir(),它比 os.listdir() 更高效,并且可以直接获取文件类型、大小等信息。 import os path = “/path/to/directory” with os.scandir(path) as entries: for entry in entries: print(f”Name: {entry.name}, Is file: {entry.is_file()}, Is directory: {entry.is_dir()}”)
  • 方法 说明 os.listdir(path) 获取目录下的所有文件和子目录(不包括路径) os.path.isfile(path) 判断路径是否是文件 os.path.isdir(path) 判断路径是否是目录 os.walk(path) 递归遍历目录下的所有文件和子目录 os.scandir(path) 更高效的目录遍历方式 sorted(os.listdir(path)) 按文件名排序 glob.glob("*.txt") 获取指定类型的文件 到此这篇关于Python中os.listdir() 获取指定目录中的文件和子目录的列表的文章就介绍到这了,更多相关Python os.listdir() 获取目录文件内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法
  • 目录
    • os.listdir() 函数
    • 1. os.listdir() 语法
      • 参数:
      • 返回类型:
    • 2. 基本用法示例
      • 2.1 列出当前目录中的所有文件和文件夹
      • 2.2 列出指定目录中的所有文件和子目录
    • 3. 配合 os.path 进行筛选
      • 3.1 区分文件和目录
    • 4. 与 glob 和 fnmatch 结合进行筛选
      • 4.1 使用 glob 获取特定类型的文件
    • 4.2 使用 fnmatch 进行文件匹配
      • 5. 遍历所有文件(包括子目录)
        • 6. 与 sorted() 结合使用
          • 6.1 按文件名排序
          • 6.2 按文件大小排序
          • 6.3 按修改时间排序
        • 7. os.scandir() vs os.listdir()
          • 8. 总结

            os.listdir() 是 Python os 模块中的一个函数,用于获取指定目录中的文件和子目录的列表。它返回一个包含 目录内容 的 列表,但不会递归进入子目录。

            import os
            
            os.listdir(path=".")
            

            • path(可选):要列出文件和目录的路径,默认为当前目录(.)。
            • 返回值:一个 列表,其中包含指定目录下的 文件 和 子目录 的 名称(不包含路径)。

            • 列表(list),其中的元素是文件和目录的名称(字符串)。

            import os
            
            # 列出当前目录的所有文件和子目录
            file_list = os.listdir()
            print(file_list)
            

            import os
            
            # 指定一个目录
            path = "/path/to/directory"
            
            # 列出该目录下的所有文件和子目录
            file_list = os.listdir(path)
            print(file_list)
            

            os.listdir() 只返回名称,如果你想要区分文件和目录,需要使用 os.path.isdir() 和 os.path.isfile()

            import os
            
            path = "/path/to/directory"
            all_items = os.listdir(path)
            
            # 过滤出文件
            files = [f for f in all_items if os.path.isfile(os.path.join(path, f))]
            print("Files:", files)
            
            # 过滤出目录
            directories = [d for d in all_items if os.path.isdir(os.path.join(path, d))]
            print("Directories:", directories)
            

            如果你想获取特定类型的文件(如 .txt、.jpg 等),可以结合 glob 或 fnmatch 进行筛选。

            import glob
            
            # 获取当前目录下所有的 .txt 文件
            txt_files = glob.glob("*.txt")
            print(txt_files)
            

            import os
            import fnmatch
            
            path = "/path/to/directory"
            all_files = os.listdir(path)
            
            # 只匹配 .txt 文件
            txt_files = [f for f in all_files if fnmatch.fnmatch(f, "*.txt")]
            print(txt_files)
            

            os.listdir() 只返回 当前目录 下的内容,不会递归进入子目录。如果你需要遍历所有子目录,可以使用 os.walk()

            import os
            
            path = "/path/to/directory"
            
            for root, dirs, files in os.walk(path):
                print("Current directory:", root)
                print("Subdirectories:", dirs)
                print("Files:", files)
            

            可以对 os.listdir() 返回的列表进行排序,按照名称、大小或修改时间排序。

            import os
            
            path = "/path/to/directory"
            sorted_list = sorted(os.listdir(path))
            print(sorted_list)
            

            import os
            
            path = "/path/to/directory"
            files = os.listdir(path)
            
            # 获取按大小排序的文件列表
            sorted_files = sorted(files, key=lambda f: os.path.getsize(os.path.join(path, f)))
            
            print(sorted_files)
            

            import os
            
            path = "/path/to/directory"
            files = os.listdir(path)
            
            # 获取按修改时间排序的文件列表
            sorted_files = sorted(files, key=lambda f: os.path.getmtime(os.path.join(path, f)))
            
            print(sorted_files)
            

            Python 3.5 以后,推荐使用 os.scandir(),它比 os.listdir() 更高效,并且可以直接获取文件类型、大小等信息。

            import os
            
            path = "/path/to/directory"
            
            with os.scandir(path) as entries:
                for entry in entries:
                    print(f"Name: {entry.name}, Is file: {entry.is_file()}, Is directory: {entry.is_dir()}")
            

            方法 说明
            os.listdir(path) 获取目录下的所有文件和子目录(不包括路径)
            os.path.isfile(path) 判断路径是否是文件
            os.path.isdir(path) 判断路径是否是目录
            os.walk(path) 递归遍历目录下的所有文件和子目录
            os.scandir(path) 更高效的目录遍历方式
            sorted(os.listdir(path)) 按文件名排序
            glob.glob("*.txt") 获取指定类型的文件

            到此这篇关于Python中os.listdir() 获取指定目录中的文件和子目录的列表的文章就介绍到这了,更多相关Python os.listdir() 获取目录文件内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

            您可能感兴趣的文章:

            • Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法

            站内搜索