Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1042767
  • 博文数量: 326
  • 博客积分: 10135
  • 博客等级: 上将
  • 技术积分: 2490
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-22 23:53
文章分类

全部博文(326)

文章存档

2014年(1)

2012年(4)

2011年(1)

2010年(4)

2009年(41)

2008年(44)

2007年(63)

2006年(168)

我的朋友

分类: Python/Ruby

2008-06-24 10:20:13

几个主要的函数:

1: os.listdir(path) //path为目录

功能相当于在path目录下执行dir命令,返回为list类型

举例:

  1. print os.listdir(’..’)  
  2. 输出:  
  3. [a,b,c,d]  

2: os.path.walk(path,visit,arg)

path :是将要遍历的目录
visit :是一个函数指针,函数圆形为:
callback(arg,dir,fileList)
其中arg为为传给walk的arg , dir是path下的一个目录,fileList为dir下的文件和目录组成的list
arg:传给visit用的,对walk没有什么作用

举例:

  1.  def callback(arg,directory, files):  
  2. print directory,  
  3. print files,  
  4. print arg  
  5. print ‘——————–’  
  6. os.path.walk(’.',callback, ‘123456′)  
  7.   
  8. 输出:  
  9. . [’path0704.py’, ‘temp’, ‘\xc2\xb7\xbe\xb6\xcf\xe0\xb9\xd8\xd1\xa7\xcf\xb0.txt’] 123456  
  10. ——————–  
  11. .\temp [’temp.h’, ‘temp1′] 123456  
  12. ——————–  
  13. .\temp\temp1 [’abc.bmp’] 123456  

如果想找到某个目录下所有文件,只需要在callback里面,在fileList中找出文件,即可

除此之外,还有一个函数可以用那就是os.walk,看10

3:os.path.split(path)
path 为一个路径,

输出,把path分成两部分,具体看实例:

  1. print os.path.split(”abc/de.txt”)  
  2. (’abc’, ‘de.txt’)  
  3. os.path.split(”abc”)  
  4. (”, ‘abc’)  
  5. print os.path.split(”de/abc/de”)  
  6. (’de/abc’, ‘de’)  

4: os.path.splitext(filename)
把文件名分成文件名称和扩展名
os.path.splitext(abc/abcd.txt)
(’abc/abcd’, ‘.txt’)

5: os.path.dirname(path)
把目录名提出来

  1. print os.path.dirname(”abc”)  
  2. #输出为空  
  3. print os.path.dirname(’abc\def’)  
  4. abc  

6: os.path.basename(filename)

取得主文件名

  1. print os.path.basename(’abc’)  
  2. abc  
  3. print os.path.basename(’abc.txt’)  
  4. abc  
  5. print os.path.basename(’bcd/abc’)  
  6. abc #这个需要注意不包括目录名称  
  7. print os.path.basename(’.')  

7:os.mkdir(path, [mode])
path为目录名: 这里有个要求,只能创建一级目录
比如path为 abc/def 则当前目录下必须存在abc 否则失败

8: os.makedirs(path [,mode])
可以创建多级目录

9:os.remove(path)删除一个文件,一定是一个文件
os.removedirs(path) 删除一个目录下所有东西
os.rmdir(path) 删除一个目录,而且一定要空,否则os.errer

10:os.walk(path)
遍历path,返回一个对象,他的每个部分都是一个三元组
(’目录x’,[目录x下的目录list],目录x下面的文件)

举例:

  1. a = os.walk(’.')  
  2. for i in a:  
  3. print i  
  4. 输出:  
  5. (’.', [’abc’, ‘temp’], [’path0704.py’, ‘\xc2\xb7\xbe\xb6\xcf\xe0\xb9\xd8\xd1\xa7\xcf\xb0.txt’])  
  6. (’.\\abc’, [], [’\xd0\xc2\xbd\xa8 BMP \xcd\xbc\xcf\xf1.bmp’])  
  7. (’.\\temp’, [’temp1′], [’temp.h’])  
  8. (’.\\temp\\temp1′, [], [’abc.bmp’])  

11:shutil.copy(src,dst)
把文件src内容拷贝到文件dst中。,目标区域必须可以写,如果dst存在,则dst被覆盖

上面的函数基本够用
其它文件移动操作还请看:shutil模块:High-level file operations

阅读(953) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~