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()函数。

#导入OS模块
import os

#获取所有文件和目录的列表
path =“your_directory_path”
dir_list = os.listdir(path)

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

#打印所有文件
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桌面
C:\ Users \ Muralidhar \ Downloads \ TransferNow-20230404wNPPor3p
C:\ Users \ Muralidhar \ Downloads \ Video

使用os.walk()方法

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

语法

os.walk('your_directory_path')

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

示例

# 引入OS模块
import os

# 这是我的路径
path = "your_specific_path"

# 将文件存储在列表中
list = []

# dirs = 目录
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

# 这是我的路径
path = "your_specific_path"

# 使用“*”模式
print('\n使用通配符*命名:')
for files in glob.glob(path + '*'):
   print(files)

# 使用“?”模式
print('\n以问号命名:')
for files in glob.glob(path + '?.txt'):
   print(files)


# 使用[0-9]模式
print('\n带通配符范围命名:')
for files in glob.glob(path + '/*[0-9].*'):
   print(files)

输出

使用通配符*命名:
C:\Users\Muralidhar\Downloads

以问号命名:

带通配符范围命名:
C:\Users\Muralidhar\Downloads\1643005747_rohankumarsingh074c43032beb4cee8cb1329312cf92351643005746.pdf
C:\Users\Muralidhar\Downloads\1674125121289.jpg
C:\Users\Muralidhar\Downloads\807.pdf

使用iglob()方法

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

语法

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

glob模块的iglob()函数将目录的路径和递归参数的布尔值作为true/false作为输入,并返回所有子目录中的所有文件。

示例

import glob

# 这是我的路径
path = "your_specific_path"


# 它返回一个同时打印的迭代器。
print("\n使用glob.iglob()")

# 打印Path中存在的所有类型的txt文件
for file in glob.iglob(path, recursive=True):
   print(file)

输出

使用glob.iglob()
C:\Users\Muralidhar\Downloads

结论

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程