1. os.path.walk()

这是一个传统的用法。

walk(root,callable,args)方法有三个参数:要遍历的目录,回调函数,回调函数的参数(元组形式)。

调用的过程是遍历目录下的文件或目录,每遍历一个目录,调用回调函数,并把args作为参数传递给回调函数。

回调函数定义时也有三个参数,比如示例中的func中的三个参数,分别为walk传来的参数、目录的路径、目录下的文件列表(只有文件名,不是完整路径)。请看示例:

import os
s = os.sep #根据unix或win,s为\或/
root = "d:" + s + "ll" + s #要遍历的目录
def func(args,dire,fis): #回调函数的定义
for f in fis:
fname = os.path.splitext(f) #分割文件名为名字和扩展名的二元组
new = fname[0] + 'b' + fname[1] #改名字
os.rename(os.path.join(dire,f),os.path.join(dire,new)) #重命名
os.path.walk(root,func,()) #遍历


2. os.walk()

原型为:os.walk(top, topdown=True, onerror=None, followlinks=False)

我们一般只使用第一个参数。(topdown指明遍历的顺序)
该方法对于每个目录返回一个三元组,(dirpath, dirnames, filenames)。第一个是路径,第二个是路径下面的目录,第三个是路径下面的非目录(对于windows来说也就是文件)。请看示例:

import os
s = os.sep
root = "d:" + s + "ll" + s
for rt, dirs, files in os.walk(root):
for f in files:
fname = os.path.splitext(f)
new = fname[0] + 'b' + fname[1]
os.rename(os.path.join(rt,f),os.path.join(rt,new))

3. listdir

可以使用os模块下的几个方法组合起来进行遍历。请看示例:

import os
s = os.sep
root = "d:" + s + "ll" + s
for i in os.listdir(root):
if os.path.isfile(os.path.join(root,i)):
print i

这里需要注意的是,其中的i是目录或文件名,不是完整的路径,在使用时要结合os.path.join()方法还原完整路径。


更多相关文章

  1. win8.1 cygwin - pip正在安装到windows python目录中吗?
  2. py2exe使用相对路径的当前目录问题
  3. python_列表_循环遍历
  4. Shell脚本更改带变量的目录
  5. Python编程系列教程第16讲——拷贝自身到系统目录
  6. linux系统更改目录和文件的权限总结
  7. 漂亮的LinuxC注释转换器--(2.2)目录级联转换最终实现
  8. 在Linux用tar归档压缩文件时忽略某些文件和目录
  9. linux目录结构详细介绍

随机推荐

  1. xcode怎么使用
  2. %ld 在 C 语言中什么意思?
  3. c语言打印九九乘法表
  4. c语言中stract函数的意思
  5. C 语言中 fun 函数怎么用?
  6. c语言计算阶乘累加和
  7. c++ switch用法
  8. C语言中 return 的作用
  9. c语言实现输出5个数就自动换行
  10. getchar在c语言中是什么意思