满足列出目录文件和子目录需求!用Python 4种方法实现,含os.popen原理

有时我们需要列出哪些文件和子目录在目录中。在这种情况下,有可用的现成命令,例如Windows中的DIR命令和Linux中的LS命令。我们如何使用Python代码实现它?

满足列出目录文件和子目录需求!用Python 4种方法实现,含os.popen原理

我们可以使用Python富库来轻松实现一个简单的版本。这是实施它的4种方法。

1。使用OS.Popen

OS.Popen的工作原理是创建一个新的子过程,然后使用此子过程执行命令。父过程和子过程通过管道进行通信。

根据调用Popen时传递的参数,我们可以通过管道读取子进程的输出或将数据写入子过程。默认情况下,读取子过程的输出。

从上面的描述中,我们可以看到Popen非常笼统,并且仅在我们的示例中使用。

然后,让我们开始使用它来满足我们的需求,代码如下:

import os
for line in os.popen("ls"):
    print(line, end="")

哈哈,不是很简单吗?尽管此方法可以实现目标,但这不是我们想要的。我们最初想实施LS,但我们称LS为LS,因此从严格的意义上说,我们没有实施LS,所以让我们继续阅读其他方法,呵呵。

2。使用glob.glob

Glob可以根据您使用的通配符匹配文件。使用此功能,我们可以列出当前目录中的哪些文件和子目录,如下:

import glob 
for line in glob.glob("*"):
    print(line)

3。使用OS.Listdir

OS.ListDir还可以列出哪些文件和子目录在某个目录中,如下所示:

import os 
for line in os.listdir("."):
    print(line)

4。使用OS.Walk

OS.Walk在遍历目录方面非常强大。它不仅可以穿越您需要的目录,还可以递归遍历子目录。递归的深度可以由代码控制。让我们看一下如何穿越整个目录树以及如何控制深度。 。

OS.Walk默认情况下将穿越整个目录树。以下代码将递归打印当前目录中的所有文件:

import os 
for dirname, subdirs, files in os.walk("."):
    for line in files:
       print(dirname.rstrip("/") + "/" + line)

那么,我们如何控制遍历的深度,例如仅横穿n层呢?实际上很简单。您只需要定义一个深度变量,然后在达到n后跳出循环即可。以下代码只会穿越1层:

import os 
depth = 0
target = 1
for dirname, subdirs, files in os.walk("."):
    for line in files:
       print(dirname.rstrip("/") + "/" + line)
    depth = depth + 1
    if depth >= target:
        break

到目前为止,我们已经完成了4种方法。如果您还有其他方法,请随时发表评论和交换。

你可能想看:
« 上一篇
下一篇 »

相关推荐

python爬虫教程PDF,Python爬虫书PDF

2026年09月02日

31阅读

外国教程python,python编程教学视频

2026年09月02日

26阅读

python简明教程沈洁元,python详细基础教程

2026年09月02日

21阅读

python库包教程,python 包

2026年09月02日

27阅读

python教程大全集,python教程600集

2026年09月02日

27阅读

python入门教程完整版,python零基础入门全套教程视频

2026年09月02日

23阅读