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

Python中如何遍历指定目录下的所有文件,第1张

例如:在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

>>>

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

例如使用IDLE编译python代码时,可以使用oschdir转到指定目录

import os

osgetcwd() #get current work direction

oschdir('E:\\Python_File\\Test') #change direction

在这之后可以直接调用’E:\Python_File\Test’目录下的函数。

或者用库调用:

import osimport shutil

alllist=oslistdir(u"D:\\notes\\python\\资料\\")for i in alllist:

aa,bb=isplit("")    if 'python' in aalower():

oldname= u"D:\\notes\\python\\资料\\"+aa+""+bb

newname=u"d:\\copy\\newname"+aa+""+bb

shutilcopyfile(oldname,newname)

扩展资料:

Python中获得当前目录和上级目录:

获取当前文件的路径:

from os import path  

d = pathdirname(__file__)  #返回当前文件所在的目录    # __file__ 为当前文件, 若果在ide中运行此行会报错,可改为  #d = pathdirname('')。

获得某个路径的父级目录:

parent_path = ospathdirname(d) #获得d所在的目录,即d的父级目录  parent_path  = ospathdirname(parent_path) ##获得parent_path所在的目录即parent_path的父级目录。

获得规范的绝对路径:

abspath = pathabspath(d) #返回d所在目录规范的绝对路径。

#encoding:utf-8

import os

#设置文件夹所在路径,我这里设置哦当前路径

path = '/'

#列出路径下所有的一级目录+文件

files = oslistdir(path)

print files

#利用递归,列出目录下包括子目录所有的文件及文件夹(但是没有分级,如果需要分级,自己写吧)

files1 = []

def listfiles(path):

for i in oslistdir(path):

if ospathisdir(path+i):

files1append(i)

listfiles(path+i)

else:

files1append(i)

listfiles(path)

print files1

实现代码如下:文件名为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里面的文件夹里,可以作为日常用的一个小工具。

以上就是关于Python中如何遍历指定目录下的所有文件全部的内容,包括:Python中如何遍历指定目录下的所有文件、python中怎样转到指定目录、python怎么读取文件夹内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存