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

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

实现代码如下:文件名为filecountpy#!/usr/bin/python import sys,os def fileCountIn(dir): return sum([len(files) for root,dirs,files in oswalk(dir)]) #得益于Python精髓的列表解析,所以一句话就搞定了 #oswalk(dir)会返回一个三元组:(当前目录,子目录列表,文件列表) #所以len(files)就是获取当前目录下的文件数,然后每个目录下的文件数求和即可 if __name__=='__main__': if len(sysargv)==2: dir=sysargv[1] print 'Total files in %s is:%d' %(dir,fileCountIn(dir)) else: print 'usage:filecountpy dirname' 使用:python filecountpy dirname 或者把filecountpy改为可执行chmod +x filecountpy再放到$PATH里面的文件夹里,可以作为日常用的一个小工具。

例如:在C:\TDDOWNLOAD目录下有atxt、btxt两个文件,另有\sub1子文件夹,C:\TDDOWNLOAD\sub1下又有ctxt、dtxt两个文件。

1

oswalk

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

>>>

import

os

>>>

def

fun(

path

):

for

root,

dirs,

files

in

oswalk(

path

):

for

fn

in

files:

print

root,

fn

>>>

fun(

r'C:\TDDOWNLOAD'

)

C:\TDDOWNLOAD

atxt

C:\TDDOWNLOAD

btxt

C:\TDDOWNLOAD\sub1

ctxt

C:\TDDOWNLOAD\sub1

dtxt

>>>

2

globglob

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

返回值

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

>>>

def

fun(

path

):

for

fn

in

globglob(

path

+

ossep

+

''

):

#

''代表匹配所有文件

if

ospathisdir(

fn

):

#

如果结果为文件夹

fun(

fn

)

#

递归

else:

print

fn

>>>

fun(

r'C:\TDDOWNLOAD'

)

C:\TDDOWNLOAD\atxt

C:\TDDOWNLOAD\btxt

C:\TDDOWNLOAD\sub1\ctxt

C:\TDDOWNLOAD\sub1\dtxt

>>>

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

因为你函数用错了啊

tkFileDialogaskdirectory是用来获取目录的

tkFileDialogaskopenfilename是用来获取文件全路径的

tkFileDialogaskopenfilenames是用来获取多个文件的路径的

import os

def search(s, path=ospathabspath('')):

    for z in oslistdir(path):

        if ospathisdir(path + ospathsep + z):

            print('Currnet:', path)

            path2 = ospathjoin(path, z)

            print('future:', path2)

            search(s, path2)

        elif ospathisfile(path + ospathsep + z):

            if s in z:

                print(ospathjoin(path, z))

                with open(path + ospathsep + z, 'r') as fr:

                    with open('savetxt', 'a') as fw:

                        fwwrite(path + '\t' + frread())

search('csv', '')

以上就是关于如何获取目录下的文件数(一行Python)全部的内容,包括:如何获取目录下的文件数(一行Python)、Python中如何遍历指定目录下的所有文件、python TK怎么做一个浏览按钮获取文件全路径,下边的代码只能获取到最后一层文件夹,不能获取文件名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9750075.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存