Python 显示目录中所有目录

Python 显示目录中所有目录

在Python中,我们可以使用 pathlib 模块、 os 模块和 glob 模块来显示目录中的所有文件夹。os模块包含了各种函数,如 os.scandiros.walkos.listdirglob()iglob() 方法等,用于列出目录中的所有目录。目录是文件系统中存储各种文件或更多文件夹的文件夹。

方法1:使用Pathlib模块

我们可以使用Path.iterdir()函数获取目录中内容的路径对象。然后,我们可以遍历路径对象并使用 path.is_dir() 方法过滤出目录。

语法

path(‘your_dir_path’).iterdir()

上面的 path() 函数接受目录的路径,并使用 iterdir() 函数遍历每个文件和目录。

示例

在下面的示例中,我们从Python的 Path 模块中导入 pathlib 。然后,我们可以使用path.iterdir()函数获取目录内容的路径对象,然后遍历该对象以过滤出目录中的内容的路径。

from pathlib import Path

rootdir = 'path/to/dir'
for path in Path(rootdir).iterdir():
   if path.is_dir():
      print(path)

输出

C:\Users\Muralidhar\Downloads\DesignCode - CSS Handbook
C:\Users\Muralidhar\Downloads\Documents
C:\Users\Muralidhar\Downloads\LakshyaPoddar_FD_Round3_Code Base
C:\Users\Muralidhar\Downloads\locales
C:\Users\Muralidhar\Downloads\Music

方法2:使用OS模块

语法

os.listdir(‘your_directory_path’)

os模块的listdir()方法接受目录的路径,并返回该特定目录路径中的所有子目录。

示例

使用os.listdir()方法: os模块中的listdir()函数默认情况下只返回根目录中的所有子目录。如果我们想要列出任何指定目录的子目录,则需要将目录的路径传递给os.listdir()函数。

# import OS module
import os

# Get the list of all files and directories
path = "your_directory_path"
dir_list = os.listdir(path)

print("The path of the directory '", path, "' :")

# prints all files
print(dir_list)

输出

'SOP_VISHAL.docx', 'SR.jpeg', 'src', 'src.rar', 'staff.svg', 'sublime_text_build_4126_x64_setup.exe', 'submission_2.zip', 'swiftshader'

使用os.scandir()方法

scandir()方法返回目录路径中的子目录和文件信息。要仅筛选出子目录,我们可以使用is_dir()方法,该方法检查路径是文件还是目录。Scandir()方法比listdir()方法更快。

语法

os.scandir(‘your_directory_path’)

os模块的scandir()函数接受目录路径作为输入,并返回特定目录中的所有子目录和文件。

示例

import os

rootdir = 'path/to/dir'
for it in os.scandir(rootdir):
   if it.is_dir():
      print(it.path)

输出

C:\Users\Muralidhar\Downloads\Programs
C:\Users\Muralidhar\Downloads\resources
C:\Users\Muralidhar\Downloads\src
C:\Users\Muralidhar\Downloads\swiftshader
C:\Users\Muralidhar\Downloads\Telegram Desktop
C:\Users\Muralidhar\Downloads\TransferNow-20230404wNPPor3p
C:\Users\Muralidhar\Downloads\Video

使用os.walk()方法

walk()方法遍历目录中的所有文件,并返回目录结构中的文件列表。默认情况下,walk函数会从根目录开始自上而下地迭代返回文件。我们可以向walk()函数传递特定的路径和特定的扫描方法(自上而下或自下而上)。

语法

os.walk(‘your_directory_path’)

os模块的walk()函数接受目录路径作为输入,并返回特定目录中的文件列表。

示例

# import OS module
import os

# This is my path
path = "your_specific_path"

# to store files in a list
list = []

# dirs=directories
for (root, dirs, file) in os.walk(path):
   for f in file:
      if '.txt' in f:
         print(f)

输出

license.txt
authors.txt
config.txt
help.txt
logo.txt
options.txt
topics.txt

方法3:使用Glob模块

使用glob()方法

glob()方法采用模式匹配的方式,使文件和目录的列表更高效。我们可以使用通配符如*,.txt等来搜索与通配符模式匹配的文件路径。

语法

glob.glob(‘your_directory_path’+ pattern)

glob()函数是glob模块的函数,它接受目录的路径和模式作为输入,并返回与文件名匹配模式的特定目录中的所有文件。

示例

import glob

# This is my path
path = "your_specific_path"

# Using '*' pattern
print('\nNamed with wildcard *:')
for files in glob.glob(path + '*'):
   print(files)

# Using '?' pattern
print('\nNamed with wildcard ?:')
for files in glob.glob(path + '?.txt'):
   print(files)


# Using [0-9] pattern
print('\nNamed with wildcard ranges:')
for files in glob.glob(path + '/*[0-9].*'):
   print(files)

输出

Named with wildcard *:
C:\Users\Muralidhar\Downloads

Named with wildcard ?:

Named with wildcard ranges:
C:\Users\Muralidhar\Downloads\1643005747_rohankumarsingh074c43032beb4cee8cb1329312cf92351643005746.pdf
C:\Users\Muralidhar\Downloads\1674125121289.jpg
C:\Users\Muralidhar\Downloads\807.pdf

使用iglob()方法

如果将递归参数设置为true,则iglob()函数用于递归打印文件名。传递给iglob()函数的参数中包含此设定。

语法

glob.iglob(‘your_directory_path’,recursive=true/false)

glob模块的iglob()函数接受包含目录路径和一个布尔值(用于递归参数)作为输入,并返回递归地遍历所有子目录中的所有文件。

示例

import glob

# This is my path
path = "your_specific_path"


# It returns an iterator which will
# be printed simultaneously.
print("\nUsing glob.iglob()")

# Prints all types of txt files present in a Path
for file in glob.iglob(path, recursive=True):
   print(file)

输出

Using glob.iglob()
C:\Users\Muralidhar\Downloads

结论

在本文中,我们了解了如何使用Python中的os、glob和pathlib模块列出目录中所有文件和子目录。pathlib模块包含path.iterdir()函数,os模块包含os.listdir()、os.walk()和os.listdir()方法来获取指定目录中的子目录。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程