操作文件和目录

发布时间:2019-05-22 22:11:50编辑:auto阅读(1746)

     

    当操作文件、目录时,可在命令行下面输入操作系统提供的各种命令来完成,如dir、cp等
    其实操作系统提供的命令只是简单地调用了操作系统提供的接口函数,Python内置的os模块也可以直接调用操作系统提供的接口函数

     

    实例

    import os
    
    #操作系统
    print(os.name)  #操作系统类型
                    #output --> 'posix'
                    #如果是posix,说明系统是Linux、Unix或Mac OS X,如果是nt,就是Windows系统
    print(os.uname()) #要获取详细的系统信息, uname()函数在Windows上不提供,因为os模块的某些函数是跟操作系统相关的
    
    
    #环境变量
    print(os.environ) #在操作系统中定义的环境变量,全部保存在os.environ这个变量中,可以直接查看
    print(os.environ.get('PATH')) #获取某个环境变量的值
    
        
    #目录
    print(os.path.abspath('.')) #查看当前目录的绝对路径
    os.path.join('/Users/michael', 'testdir') #在某个目录下创建一个新目录,首先把新目录的完整路径表示出来
                               #把两个路径合成一个时,不要直接拼字符串,而要通过os.path.join()函数,这样可以正确处理不同操作系统的路径分隔符
                               #如window是\...\...\..., 而linux是/.../.../.../...
    print(os.path.split('/Users/michael/testdir/file.txt')) #同样的道理,要拆分路径时,也不要直接去拆字符串,而要通过os.path.split()函数
                                                            #这样可以把一个路径拆分为两部分,后一部分总是最后级别的目录或文件名
                                                            #('/Users/michael/testdir', 'file.txt')
    print(os.path.splitext('/path/to/file.txt')) #直接让你得到文件扩展名
                                                 #output --> ('/path/to/file', '.txt')
    os.mkdir('/Users/michael/testdir') #创建一个目录
    os.rmdir('/Users/michael/testdir') #删掉一个目录
    '''
    注意:1 操作文件和目录的函数一部分放在os模块中,一部分放在os.path模块中
         2 关于路径合并、拆分的函数并不要求目录和文件要真实存在,它们只对字符串进行操作
    '''
    
    
    #文件
    os.rename('test.txt', 'test.py') #对文件重命名
    os.remove('test.py') #删掉文件
    print([x for x in os.listdir('.') if os.path.isdir(x)]) # 列出当前目录下的所有目录,其利用Python的特性来过滤文件
    print([x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1]=='.py']) # 要列出所有的.py文件
    '''
    注意:复制文件的函数在os模块中不存在,因为复制文件不是由操作系统提供的系统调用
         可使用shutil模块提供的copyfile()函数实现文件复制,shutil模块还有很多其他实用函数,可看做是os模块的补充
    '''

     ——————————————————————————————————————————————————————————————————————

关键字

上一篇: os模块及其API&属性

下一篇: time模块的使用