
例如:在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:
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:
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怎么读取文件夹内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)