• python 中的os模块


    python os模块

     
    Python os 模块提供了一个统一的操作系统接口函数
    一、对于系统的操作
    1、os.name 当前使用平台
    其中 ‘nt’ 是 windows,’posix’ 是linux 或者 unix
    2、os.sep
    输出操作系统的特定的路径分隔符。Win下为“”,Linux下为“/”
    3、os.pathsep 输出分格符
    输出用于分割文件路径的字符串。 Windows下是';',Linux下为“:”
    4、os.linesep 换行符
    输出当前平台是用的行终止符,win下为“ ”,Linux下为“ ”,Mac使用' '。
    5、os.environ
    获取系统环境变量path
    6、os.system('dir c:\')
    直接执行系统命令
    假定有一个shell脚本test.sh:
    xxx@ubuntu:~$ vi test.sh
    xxx@ubuntu:~$ more test.sh
    #!/bin/bash
    echo 'hello python!'
    echo 'hello world!'
    exit 1
     
    >>> import os
    >>> os.system("./test.sh")
    hello python!
    hello world!
    256
     
    7、os.popen()
    执行一个系统命令,把执行结果存到文件句柄中(和python中open函数类似)
    dirList=os.popen('dir d:\tmp')
    for i in dirList:
    print i
     
    >> import os
    >>> os.popen("./test.sh")
    <open file './test.sh', mode 'r' at 0x7f6cbbbee4b0>
    >>> f=os.popen("./test.sh")
    >>> f
    <open file './test.sh', mode 'r' at 0x7f6cbbbee540>
    >>> f.readlines()
    ['hello python! ', 'hello world! ']
     
    二、对于目录的操作
    1、os.getcwd()
    获取当前的工作目录,即当前Python脚本工作的目录路径。
    结果:E:python507
    2、os.chdir('d:\')
    修改当前的工作目录
    3、os.curdir
    返回当前目录
    4、os.pardir
    目录切换到父目录(上一级目录)
     
    三、对文件的操作
    1、os.listdir('e:\tmp')
    列出指定目录下的所有文件和子目录,包括隐藏文件或目录,并以列表形式返回。
    2、os.rename('e:\tmp\1.txt','e:\tmp\1new.txt')
    修改文件名
    3、os.stat('e:\tmp\02.txt')
    获取文件的生命周期中的各个时间
    4、os.utime(path[, (atime, mtime)]) 修改文件的时间属性
    设置文件的access and modified time为给定的时间
    如果未指定atime和mtime参数,修改的时间将会是当前的时间。
    5、os.access()
    输出文件是否有写的权限:
    print os.access(fileName,os.W_OK)
    print os.access(fn,os.R_OK) 文件是否有读的权限
    print os.access(fn,os.X_OK) 文件是否有执行的权限
     
    四、os.path
    1、os.path.exists(path)
    返回当前的目录或者文件是否存在
    判断path是否存在,如果存在返回True,否则返回False。
    2、os.path.isabs(path)
    判断路径是否为绝对路径
    判断path是否是绝对路径,如果是返回True,否则返回False。
    3、os.path.isfile(path)
    判断是否是文件
    判断path是否是文件,如果是返回True,否则返回False。
    4、os.path.isdir(path)
    判断是否是目录
    判断path是否是目录,如果是目录返回True,否则返回False。
    5、os.path.getsize(path): 单位是字节
    返回文件或者目录的大小。获得文件大小,如果name是目录返回0L;如果name代表的目录或文件不存在,怎会报WindowsError异常。
    6、os.path.abspath(path)
    获取绝对路径,(但这个路径不一定是真实存在的路径)
    eg:
    print os.path.abspath('d:\tmp\test13.txt')
    print os.path.abspath('test13.txt')#返回当前执行目录下的文件名的路径,文件没有的时候也会返回
    print os.getcwd()
    结果:
    d: mp est13.txt
    D:python512 est13.txt
    D:python512
    7、os.path.normpath(path)
    把path转换为标准的路径。用于解决跨平台问题
     
    五、从路径中获取盘符,文件名,扩展名,目录
    1、os.path.split(path)
    对文件路径做分割,把最后一个\后面的文件会目录分割出来
    将path分割成目录和文件名(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在),并存于元组中返回。
    eg:
    print os.path.split('D:\tt4\c12')
    print os.path.split('D:\tt4\c12\')
    print os.path.split('D:\tt4\c12\t1.txt')
    结果:
    ('D:\tt4', 'c12')
    ('D:\tt4\c12', '')
    ('D:\tt4\c12', 't1.txt')
    2、os.path.dirname(path)
     
    返回目录的名称
    返回path的目录路径,其实就是os.path.split(path)的第一个元素。
    3、os.path.basename(path)
    返回文件的名称
    返回path最后的文件名。如果path以/或结尾,就会返回空值。即os.path.split(path)的第二个元素。
    4、os.path.splitext(path)
    把路径和扩展名切分开
    print os.path.splitext('01.py')
    print os.path.splitext('d:\tmp\001.txt')
    print os.path.splitext('D:\tt4\c12')
    结果:
    ('01', '.py')
    ('d:\tmp\001', '.txt')
    ('D:\tt4\c12', '')
    fileName,expandName = os.path.splitext(f)
    把路径和扩展名分开后可以直接赋值给两个变量,其实得到的是一个元组
    5、os.path.splitdrive(path)
    拆分驱动器(盘符)和后面的路径。拆分驱动器和文件路径,并以元组返回结果;主要针对win有效,Linux元组第一个总是空。
    返回结果是元祖
    6、os.path.join(path,*paths)
    把所有的路径组合成绝对路径。连接两个或更多的路径名,中间以“”分隔,如果所给的参数中都是绝对路径名,那最先给的绝对路径将会被丢弃
     
    六、os.walk()
    os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。

    在Unix,Windows中有效。

    语法

    walk()方法语法格式如下:

    os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])

    参数

    • top -- 根目录下的每一个文件夹(包含它自己), 产生3-元组 (dirpath, dirnames, filenames)【文件夹路径, 文件夹名字, 文件名】。

    • topdown --可选,为True或者没有指定, 一个目录的的3-元组将比它的任何子文件夹的3-元组先产生 (目录自上而下)。如果topdown为 False, 一个目录的3-元组将比它的任何子文件夹的3-元组后产生 (目录自下而上)。

    • onerror -- 可选,是一个函数; 它调用时有一个参数, 一个OSError实例。报告这错误后,继续walk,或者抛出exception终止walk。

    • followlinks -- 设置为 true,则通过软链接访问目录。

    以下实例演示了 walk() 方法的使用:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    import os
    for root, dirs, files in os.walk(".", topdown=False):
        for name in files:
            print(os.path.join(root, name))
        for name in dirs:
            print(os.path.join(root, name))

    执行以上程序输出结果为:

    ./.bash_logout
    ./amrood.tar.gz
    ./.emacs
    ./httpd.conf
    ./www.tar.gz
    ./mysql.tar.gz
    ./test.py
    ./.bashrc
    ./.bash_history
    ./.bash_profile
    ./tmp
    ./tmp/test.py
  • 相关阅读:
    【转】Spring高级进阶:BeanFactoryPostProcessor
    【转】2019版本idea导入新spring boot项目有关配置讲解及右侧没有maven解决方式
    jquery 选择器(name,属性,元素)大全
    【转】读懂正则表达式就这么简单
    【转】跨站脚本攻击(XSS)
    Oracle 分页查询 插叙不出数据
    spring:过滤器和拦截器
    Idea-每次修改JS文件都需要重启Idea才能生效解决方法 热部署
    IDEA: Call Hierarchy
    Linux之文件读取查看之cat、head、tail、tac、rev、more、less
  • 原文地址:https://www.cnblogs.com/MY0213/p/8669187.html
Copyright © 2020-2023  润新知