• python之os模块


    常用os模块工具:

    shell变量                os.environ

    运行程序                os.system, os.popen, os.execv, os.spawnv

    派生进程                os.fork, os.pipe, os.waitpid, os.kill

    文件描述符、文件锁            os.read, os.write, os.open

    文件处理                os.remove, os.rename, os.mkfifo, os.mkdir, os.rmdir

    管理工具                os.getcwd, os.chdir, os.chmod, os.getpid, os.listdir, os.access

    移植工具                os.sep, os.pathsep, os.curdir, os.path.split, os.path.join

    路径名工具             os.path.exists('path'), os.path.isdir('path'), os.path.getsize('path')

     

    管理工具

    os.getcwd    返回当前工作的目录,脚本所打开的目录

    os.chdir        改变当前目录

    os.getpid    返回调用函数的进程的pid

    >>> os.getcwd()
    
    '/Users/yan'
    
    >>> os.path.abspath('')    #空字符串代表当前工作目录
    
    '/Users/yan'
    
    >>> os.path.abspath('tmp')    #扩展为当前工作目录的完整路径名
    
    '/Users/yan/tmp'
    
    >>> os.path.abspath('/Desktop/work')
    
    '/Desktop/work'
    
    >>> os.path.abspath('.')    #扩展相对路径语法
    
    '/Users/yan'
    
    >>> os.path.abspath('..')
    
    '/Users'
    
    >>> os.path.abspath('../Desktop')
    
    '/Users/Desktop'

    可移植的常量

    os.pathsep, os.sep, os.pardir, os.curdir, os.linesep

    os.sep是python底层运行平台所采用的目录组分隔符,在不同的操作系统下显示不同。path.split(os.sep)可以将各系统

    的目录进行处理。

     

    常见os.path工具

    检查文件类型(os.path.isdir, os.path.isfile)

    测试文件是否存在(os.path.exists)

    获取文件大小(os.path.getsize)

     

    os.path.split将文件名从它的目录路径中剥离开

    os.path.join则将它们合并

    >>> pathname=r'/Library/Frameworks/Python.framework'
    
    >>> pathname.split(os.sep)
    
    ['', 'Library', 'Frameworks', 'Python.framework']
    
    >>> os.path.split(pathname)
    
    ('/Library/Frameworks', 'Python.framework')
    
    >>> os.path.join('/Library/Frameworks', 'Python.framework')
    
    '/Library/Frameworks/Python.framework'

     

    os.path.dirname、os.path.basename都调用返回了split返回结果的前两项,而os.path.splitext剥离文件扩展名

    >>> os.path.dirname(pathname)
    
    '/Library/Frameworks'
    
    >>> os.path.basename(pathname)
    
    'Python.framework'
    
    >>> os.path.splitext(r'/Library/Frameworks/Python.framework')
    
    ('/Library/Frameworks/Python', '.framework')

     

    os模块在脚本里面运行shell命令

    os.system 在python脚本中运行shell脚本,也可以运行其他python脚本,通常会阻塞,在命令行末尾加后台运算符&即可。

    os.popen 运行shell命令并与其输入或输出流相连接

    >>> os.system('cat some.py')
    
    #!/usr/bin/evn python
    
    import sys
    
    text = sys.stdin.read()
    
    words = text.split()
    
    wordcount = len(words)
    
    print(wordcount)
    
    0    #退出状态
    
    >>> os.system('python test2.py')
    
    hello!
    
    0
    
    >>> os.popen('pwd').readlines()
    
    ['/home/work/open-falcon
    ']

     

    subprocess模块可以实现与os.system和os.popen相同的效果,它要求更多的代码,但对流的连接和使用更完善。

    >>> import subprocess
    
    >>> subprocess.call('pwd')
    
    /home/work/open-falcon
    
    0
    
    >>> pipe = subprocess.Popen('pwd', stdout=subprocess.PIPE)
    
    >>> pipe.communicate()
    
    (b'/home/work/open-falcon
    ', None)
    
    >>> pipe.returncode
    
    0

     

    os模块其他工具

    os.environ 获取和设置shell环境变量

    os.fork 在类unix系统下派生新的子进程

    os.pipe 负责程序间通信

    os.execlp 启动新程序

    os.sapwnv 启动带有底层控制的新程序

    os.open 打开基于底层描述符文件

    os.mkdir 创建新的目录

    os.mkfifo 创建新的命名管道

    os.stat 获取文件底层信息

    os.remove 根据路径名删除文件

    os.walk 将函数或循环应用于整个目录树的各部分

    os模块提供了一套文件处理调用,如open、read和write,但都涉及文件底层访问,通常使用内建函数open,而不是os模块。

     

     

     

  • 相关阅读:
    PHP获取当前页面完整URL的方法
    PHP中常见的提示对照表
    PHP语言中使用JSON和将json还原成数组
    PHP中被定义为false的
    yum
    PHP中计划任务
    command shell 的知识整理
    js的包管理工具bower安装
    Shell脚本
    liunx中计算机壳层
  • 原文地址:https://www.cnblogs.com/whych/p/9880018.html
Copyright © 2020-2023  润新知