首页>>后端>>Python->python查看子目录下有多少文件(2023年最新分享)

python查看子目录下有多少文件(2023年最新分享)

时间:2023-12-20 本站 点击:0

导读:本篇文章首席CTO笔记来给大家介绍有关python查看子目录下有多少文件的相关内容,希望对大家有所帮助,一起来看看吧。

如何获取目录下的文件数(一行Python)

如果想把该目录下所有的文件都统计出来,包括子目录、子目录的子目录。。。

可以使用os.walk来找出目录下所有的文件

1

2

3

import os

print sum([len(x) for _, _, x in os.walk(os.path.dirname("test"))])

#test是目录名

os.walk会递归遍历指定目录下的文件,返回值分别为当前文件夹完整路径,当前文件夹中的文件夹和文件夹中的文件。我们只需要文件,所以其他的都不取出来了,直接使用"_"占位就行了。

如果只是想统计出当前目录下的文件,不包括子目录的。就使用os.listdir,只统计是文件的个数:

1

len([x for x in os.listdir(os.path.dirname(__file__)) if os.path.isfile(x)])

python遍历目录就是这么简单

有时我们有列出目录下都有哪些文件和子目录的需求,这种情况是有现成命令可用的,比如windows下的dir命令,linux下的ls命令都可以,那我们用python代码怎么实现呢?

我们利用python丰富的库很容易就能实现一个简易版本,下面我们就用4种方法来实现它。

一、使用os.popen

os.popen工作原理是新建一个子进程,然后用这个子进程执行命令,父进程与子进程间通过管道进行通信。

根据调用popen时的传参,我们可以通过管道读取子进程的输出也可以向子进程写数据,默认是读取子进程的输出。

从以上描述可以看出popen是非常通用的,不是只能用于我们这个例子哦。

那我们开始用它实现我们的需求吧,代码如下:

哈哈,是不是很简单,这种方式虽然能达到目的但其实并不是我们想要的,我们本来就是要实现ls的,结果调用了ls,所以严格意义上来说我们并没有实现ls,那让我们继续往下看其它方法吧,嘿嘿。

二、使用glob.glob

glob可以根据你使用的通配符对文件进行匹配,利用这个特性我们可以列出当前目录下都有哪些文件和子目录,如下代码:

三、使用os.listdir

os.listdir同样可以列出某个目录下都有哪些文件和子目录,如下代码:

四、使用os.walk

os.walk在遍历目录方面非常强大,它不但可以遍历你需要的目录,也可以递归遍历子目录且递归的深度可以用代码控制,下面让我们分别看下怎么遍历整个目录树以及怎么控制深度吧。

os.walk默认是遍历整个目录树的,如下代码就会递归打印出当前目录下所有文件:

那我们怎么控制遍历的深度,比如只遍历n层呢?其实很简单,只需要定义一个深度变量,然后到达n后跳出循环即可,如下代码就只遍历1层:

至此我们已经写完4种方法了,如果你还有其他方法,欢迎评论交流。

自学Python:查看文件夹及子目录所有文件路径

使用路径对象glob()函数和rglob()函数,可以查看指定路径下的文件和子文件夹,两者的区别在于,glob()函数只进行一级查找,而rglob()函数会进行多级查找。

from pathlib import Path

p = Path('d:\\文件夹\\')

r = p.glob('*')

for i in r:

    print(i) #显示glob()函数的结果

print('-' * 25) #这里是分割线

r = p.rglob('*')

for i in r:

    print(i)#显示rglob()函数的结果

查看对应结果如下:

d:\11\11.txt

d:\11\r.mp3

d:\11\t.mp3

d:\11\tp1000

d:\11\文件夹

-------------------------

d:\11\11.txt

d:\11\r.mp3

d:\11\t.mp3

d:\11\tp1000

d:\11\文件夹

d:\11\文件夹\文档.txt

________________END______________

Python中如何遍历指定目录下的所有文件?

例如:在C:\TDDOWNLOAD目录下有a.txt、b.txt两个文件,另有\sub1子文件夹,C:\TDDOWNLOAD\sub1下又有c.txt、d.txt两个文件。

1.

os.walk

os.walk()返回一个三元素的tuple:当前路径、子文件夹名称、文件列表。

import

os

def

fun(

path

):

...

for

root,

dirs,

files

in

os.walk(

path

):

...

for

fn

in

files:

...

print

root,

fn

...

fun(

r'C:\TDDOWNLOAD'

)

C:\TDDOWNLOAD

a.txt

C:\TDDOWNLOAD

b.txt

C:\TDDOWNLOAD\sub1

c.txt

C:\TDDOWNLOAD\sub1

d.txt

2.

glob.glob

glob.glob()只接受一个参数,这个参数既代有路径,又代有匹配模式,

返回值

为一个列表。注意,glob.glob()无法直接穿透子文件夹,需要自己处理:

def

fun(

path

):

...

for

fn

in

glob.glob(

path

+

os.sep

+

'*'

):

#

'*'代表匹配所有文件

...

if

os.path.isdir(

fn

):

#

如果结果为文件夹

...

fun(

fn

)

#

递归

...

else:

...

print

fn

...

fun(

r'C:\TDDOWNLOAD'

)

C:\TDDOWNLOAD\a.txt

C:\TDDOWNLOAD\b.txt

C:\TDDOWNLOAD\sub1\c.txt

C:\TDDOWNLOAD\sub1\d.txt

'*'为匹配模式,代表匹配所有文件,只有这样才能将子文件夹查出来,以便递归深入,探查下一层的文件。

python 判断一个文件夹里有多少文件

filecount=0

import os

for root,dir,files in  os.walk("文件夹"):

    filecount+=len(files)

print("文件夹下共有%d个文件"%filecount)

用os.walk遍历文件夹,计算文件的个数

结语:以上就是首席CTO笔记为大家介绍的关于python查看子目录下有多少文件的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Python/45917.html