python怎么遍历一个目录下的所有目录

python怎么遍历一个目录下的所有目录,第1张

path = '/'

for parent, dirnames, filenames in oswalk(path):

parent就是父级目录

dirnames就是该目录下面的子目录

filenames就是该目录下面的文件

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

可以使用oswalk来找出目录下所有的文件

import os

print sum([len(x) for _, _, x in oswalk(ospathdirname("test"))])

#test是目录名

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

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

len([x for x in oslistdir(ospathdirname(__file__)) if ospathisfile(x)])

主要是循环那段,没必要双重循环的。下面的代码就可以了。

import os

filenamelist=oslistdir(osgetcwd())

f=open('allfilenamestxt','w')

'''

length=len(filenamelist)

s=xrange(length)

for i in s:

while i < length-1:

i+=1

for n in filenamelist:

fwrite("%d%s\n" % (i,n))

'''

for i,n in enumerate(filenamelist):

fwrite("%d%s\n" % (i,n))

fclose()

刚好我前段时间写了一个日志分析工具、也是需要手动选择文件夹、然后列出整个文件夹里面的文件,然后双击选择

1、用tkinterfiledialog的filedialog来打开选择文件夹

2、用oslistdit()来显示文件夹里面的所有文件,当然你可以设置if条件,来选择你想显示的文件

代码;

#!/usr/bin/env python

#!encoding:utf-8

#!filename:test_filedialogpy

import tkinterfiledialog as filedialog

from tkinter import 

import os

from tkinter import 

def callback():

    entrydelete(0,END) #清空entry里面的内容

    listbox_filenamedelete(0,END)

    #调用filedialog模块的askdirectory()函数去打开文件夹

    global filepath

    filepath = filedialogaskdirectory() 

    if filepath:

        entryinsert(0,filepath) #将选择好的路径加入到entry里面

    print (filepath)

    getdir(filepath)

def getdir(filepath=osgetcwd()):

    """

    用于获取目录下的文件列表

    """

    cf = oslistdir(filepath)

    for i in cf:

        listbox_filenameinsert(END,i)

if __name__ == "__main__":

    root = Tk()

    roottitle("测试版本")

    rootgeometry("400x400")

    rootrowconfigure(1, weight=1)

    rootrowconfigure(2, weight=8)

    entry = Entry(root, width=60)

    entrygrid(sticky=W+N, row=0, column=0, columnspan=4, padx=5, pady=5)

    button = Button(root,text="选择文件夹",command=callback)

    buttongrid(sticky=W+N, row=1, column=0, padx=5, pady=5)

    #创建loistbox用来显示所有文件名

    listbox_filename = Listbox(root, width=60)

    listbox_filenamegrid(row=2, column=0, columnspan=4, rowspan=4, 

                            padx=5, pady=5, sticky=W+E+S+N)

    rootmainloop()

效果图

望采纳

以上就是关于python怎么遍历一个目录下的所有目录全部的内容,包括:python怎么遍历一个目录下的所有目录、如何获取目录下的文件数(一行Python)、用python写的一段提取当前文件夹中的文件列表,并编号。代码如下,请教问题出在哪里等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存