python模块系列之 - os

代码环境:python2.7.9
os.name:判断现在正在使用的平台,Windows返回’nt’;Linux返回‘posix’。

  >>> os.name
  'nt'

os.getcwd():得到当前工作目录

>>> os.getcwd()
'C:\\Users\\zzz'

4.os.remove(“file”):删除指定文件
5. os.rmdir(“path”):删除指定目录
6. os.mkdir(“path”):创建目录
7. os.chdir(“path”):改变目录到指定目录
8. os.makedirs(“path”):递归建立目录
9. os.path.isfile():判断指定对象是否为文件。是返回True,否则False
10. os.path.isdir():判断指定对象是否为目录。是返回True,否则False
11. os.path.exists():判断指定的对象是否存在,存在是True,否则为False.
os.path.split():返回路径的目录和文件名
是根据最后一个\或\来分隔的。

>>> os.path.split("E:\\test\\2.py")
('E:\\test', '2.py')
>>> os.path.split("E:\\test\\")
('E:\\test', '')
>>> os.path.split("E:\\test")
('E:\\', 'test')

os.path.splitdrive():返回(drivername,fpath)元组

os.path.splittest():分离文件名与扩展名;默认返回(fname,fextension)元组,可做分片操作.
它是根据最后一个点符号分隔的。

>>> os.path.splitext("E:\\test\\getpath\\getpath.py")
('E:\\test\\getpath\\getpath', '.py')
>>> os.path.splitext("E:\\test\\getpath\\getpath.py")[1]
'.py'
>>> os.path.splitext("E:\\test\\getpath\\getpath.py")[0]
'E:\\test\\getpath\\getpath'
>>> os.path.splitext("getpath.py")[1]
'.py'
>>> os.path.splitext("getpath.py")[0]
'getpath'
>>> os.path.splitext("getpath")[0]
'getpath'
>>> os.path.splitext("getpath")[1]
''
  1. os.path.abspath():获得绝对路径
 >>> os.path.abspath(".")
'C:\\Users\\zzz'
 >>> os.path.abspath("test")#test是在当前工作目录下存在的一个文件
'C:\\Users\\zzz\\test' 

os.path.basename(“path”):返回文件名

>>> os.path.basename("E:\\test\\2.py")
'2.py'
>>> os.path.basename("E:\\test\\")
''
>>> os.path.basename("E:\\test")
'test'

os.path.dirname(“path”):返回文件路径

>>> os.path.dirname("C:\\Users\\zzz\\idea")
'C:\\Users\\zzz'
>>> os.path.dirname("C:\\Users\\zzz\\idea\\")
'C:\\Users\\zzz\\idea'

重点说下,遍历目录的三个函数:
os.path.walk(top,func,arg)
(1)参数top表示需要遍历的目录路径。

(2)参数func表示回调函数,即对遍历路径进行处理的函数。所谓回调函数,是作为某个函数的参数使用,当某个时间触发时,程序将调用定义好的回调函数处理某个任务。注意:walk的回调函数必须提供三个参数:第1个参数为os.path.walk的参数arg,第2个参数表示目录dirname,第3个参数表示文件列表names。注意:os.path.walk的回调函数中的文件列表不和os.walk()那样将子目录和文件分开,而是混为了一摊,需要在回调函数中判断是文件还是子目录。

(3)参数arg是传递给回调函数的元组,为回调函数提供处理参数,arg可以为空。回调函数的第1个参数就是用来接收这个传入的元组的。
os.walk(top,topdown=True,οnerrοr=None)
(1)参数top表示需要遍历的顶级目录的路径。

(2)可选参数,topdown的默认值是“True”表示首先返回顶级目录下的文件,然后再遍历子目录中的文件。当topdown的值为”False”时,表示先遍历子目录中的文件,然后再返回顶级目录下的文件。

(3)可选参数,onerror默认值为”None”,表示忽略文件遍历时的错误。如果不为空,则提供一个自定义函数提示错误信息后继续遍历或抛出异常中止遍历。
返回值:函数返回一个元组,含有三个元素。这三个元素分别是:每次遍历的路径名、路径下子目录列表、目录下文件列表。

import os
    path = "E:\\test"
    num=0
    for pardir, subpath, files in os.walk(path):
         for file in files:
            num += 1
            print num,os.path.join(pardir,file)

    print num

os.listdir(“path”):显示指定目录下所有文件和文件夹
不会递归显示子目录下的文件

def list(path,num):
    for dir in os.listdir(path):
        if os.path.isdir(os.path.join(path,dir)):
            list(os.path.join(path,dir),num)
        else:
            num[0] += 1
            print num,os.path.join(path,dir)

    return num
if __name__=="__main__":
    path = "E:\\test"
    num=[0]
    print list(path,num)

为什么要把num定义为列表的形式,如果写成num=0会怎么样?大家可以试试,参考下一篇文章“python基础知识-嵌套函数”

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值