• python os 模块


    提供对操作系统进行调用的接口

    import os

    os.getcwd()  linux pwd命令
    # linux
    # = linux pwd 命令 
    >>> os.getcwd()
    '/root'
    
    
    # windows
    >>> os.getcwd()
    'C:\Users\Administrator'
    '''

    os.chdir() linux cd命令
    # 改变当前脚本工作目录;相当于shell下cd 
    
    # linux
    >>> os.chdir('/data')
    >>> 
    >>> 
    >>> os.getcwd()
    '/data'
    
    # windows
    第一种方法
    >>> os.chdir("c:\Users")
    >>>
    >>> os.getcwd()
    'c:\Users'
    >>>
    
    第二种方法
    >>> os.chdir(r"c:UsersAdministrator")
    >>>
    >>> os.getcwd()
    'c:\Users\Administrator'
    >>>

    推荐第二种方法

    os.makedirs()  linux mkdir -p 递归目录

    windows

    >>> os.makedirs(r"c:acd")

     linux

    >>> os.makedirs('/data/aaa')
    
    [root@salt-server-192 ~]# ls /data/
    aaa/   app/   mysql/ 
    os.removedirs()   若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推

    先删d,检测到c空目录再删c,再到b...
    # windows
    >>> os.removedirs(r"c:acd")  
    
    # linux 
    >>> os.removedirs('/data/aaa')
    
    [root@salt-server-192 data]# ls
    app  mysql
    os.mkdir()    生成单级目录;相当于linux 中mkdir dirname
    windows
    # windows
    
    >>> os.mkdir(r"c:a")
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    FileNotFoundError: [WinError 3] 系统找不到指定的路径。: 'c:\a\b'
    
    >>> os.mkdir(r"c:a")
    >>> os.mkdir(r"c:a")

    linux

    # linux
    >>> os.mkdir('/data/a')
    >>> os.mkdir('/data/a/b')
    
    [root@salt-server-192 b]# pwd
    /data/a/b

    os.rmdir()
    删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
    # windows
    >>> os.rmdir(r"c:a")
    
    # linux
    os.rmdir('/data/a/b')
    
    [root@salt-server-192 a]# pwd
    /data/a
    [root@salt-server-192 a]# ls
    [root@salt-server-192 a]# 
    os.listdir() 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
    windows
    # windows
    >>> os.listdir('..')
    ['Administrator', 'All Users', 'Default', 'Default User', 'desktop.ini', 'Public
    ']
    
    >>> os.listdir(r'f:')
    ['$RECYCLE.BIN', 'KwDownload', 'MyDrivers', 'QMDownload', 'qqpcmgr_docpro', 'Sys
    tem Volume Information', '迅雷下载']

    linux

    # linux
    >>> os.listdir('.')
    ['a', 'app', 'mysql']
    >>> 
    >>> os.listdir('..')
    ['tmp', 'lost+found', 'home', 'selinux', 'srv', 'dev', 'media', 'lib', 'etc', 'opt', 'proc', 'var', 'data', 'boot', 'lib64', 'sbin', '.autorelabel', 'mnt', 'root', 'bin', '.autofsck', 'sys', 'usr']
    >>> 
    >>> os.listdir('/root/')
    ['.tcshrc', '.mysql_history', 'tar', '.cshrc', '.viminfo', 'sh', '.bash_history', '.pki', 'install.log', 'anaconda-ks.cfg', '.bash_profile', '.bashrc', '.bash_logout', 'install.log.syslog', '.ssh']
    >>> 
    os.remove()  # 删除一个文件
    os.rename("oldname","newname")  # 重命名文件/目录

    os.stat() 获取文件/目录信息
    # linux
    >>> os.stat('/root/anaconda-ks.cfg')
    posix.stat_result(st_mode=33152, st_ino=393225, st_dev=64768L, st_nlink=1, st_uid=0, st_gid=0, st_size=1096, st_atime=1509983597, st_mtime=1509983597, st_ctime=1509983598)
    >>> 
    
    # windows
    >>> os.stat(r'..desktop.ini')
    os.stat_result(st_mode=33206, st_ino=281474976729839, st_dev=3459212205, st_nlin
    k=1, st_uid=0, st_gid=0, st_size=174, st_atime=1247547264, st_mtime=1247547264,
    st_ctime=1247547264)
    os.sep   输出操作系统特定的路径分隔符,win下为"\",Linux下为"/"
    # windows
    >>> os.sep
    '\'
    
    # linux
    >>> os.sep
    '/'
    os.linesep 输出当前平台使用的行终止符,win下为"	
    ",Linux下为"
    "
    # windows
    >>> os.linesep
    '
    '
    
    # linux
    >>> os.linesep
    '
    '

    os.environ() 显示系统环境变量

    print(os.environ)
    
    environ({'ALLUSERSPROFILE': 'C:\ProgramData', 'APPDATA': 'C:\Users\Administrator\AppData\Roaming', 'COMMONPROGRAMFILES': 'C:\Program Files\Common Files', 'COMMONPROGRAMFILES(X86)': 'C:\Program Files (x86)\Common Files', 'COMMONPROGRAMW6432': 'C:\Program Files\Common Files', 'COMPUTERNAME': 'USER-20171103BR', 'COMSPEC': 'C:\Windows\system32\cmd.exe', 'FP_NO_HOST_CHECK': 'NO', 'HOMEDRIVE': 'C:', 'HOMEPATH': '\Users\Administrator', 'LOCALAPPDATA': 'C:\Users\Administrator\AppData\Local', 'LOGONSERVER': '\\USER-20171103BR', 'NUMBER_OF_PROCESSORS': '4', 'OS': 'Windows_NT', 'PATH': 'C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\TortoiseSVN\bin;C:\Users\Administrator\AppData\Local\Programs\Python\Python36', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC', 'PROCESSOR_ARCHITECTURE': 'AMD64', 'PROCESSOR_IDENTIFIER': 'Intel64 Family 6 Model 58 Stepping 9, GenuineIntel', 'PROCESSOR_LEVEL': '6', 'PROCESSOR_REVISION': '3a09', 'PROGRAMDATA': 'C:\ProgramData', 'PROGRAMFILES': 'C:\Program Files', 'PROGRAMFILES(X86)': 'C:\Program Files (x86)', 'PROGRAMW6432': 'C:\Program Files', 'PSMODULEPATH': 'C:\Windows\system32\WindowsPowerShell\v1.0\Modules\', 'PUBLIC': 'C:\Users\Public', 'PYCHARM_HOSTED': '1', 'PYTHONIOENCODING': 'UTF-8', 'PYTHONPATH': 'C:\Users\Administrator\PycharmProjects', 'PYTHONUNBUFFERED': '1', 'SESSIONNAME': 'Console', 'SYSTEMDRIVE': 'C:', 'SYSTEMROOT': 'C:\Windows', 'TEMP': 'C:\Users\ADMINI~1\AppData\Local\Temp', 'TMP': 'C:\Users\ADMINI~1\AppData\Local\Temp', 'USERDOMAIN': 'USER-20171103BR', 'USERNAME': 'Administrator', 'USERPROFILE': 'C:\Users\Administrator', 'WINDIR': 'C:\Windows', 'WINDOWS_TRACING_FLAGS': '3', 'WINDOWS_TRACING_LOGFILE': 'C:\BVTBin\Tests\installpackage\csilogfile.log', '_DFX_INSTALL_UNSIGNED_DRIVER': '1'})
    >>> os.environ
    environ({'ALLUSERSPROFILE': 'C:\ProgramData', 'APPDATA': '  # 分隔文件路径字符串 ;
    tor\AppData\Roaming', 'COMMONPROGRAMFILES': 'C:\Program
     'COMMONPROGRAMFILES(X86)': 'C:\Program Files (x86)\Commo
    RAMW6432': 'C:\Program Files\Common Files', 'COMPUTERNAME
     'COMSPEC': 'C:\Windows\system32\cmd.exe', 'FP_NO_HOST_C
    VE': 'C:', 'HOMEPATH': '\Users\Administrator', 'LOCALAPPD
    inistrator\AppData\Local', 'LOGONSERVER': '\\USER-20171
    OCESSORS': '4', 'OS': 'Windows_NT', 'PATH': 'C:\Windows\s
    :\Windows\System32\Wbem;C:\Windows\System32\WindowsPo
    Program Files\TortoiseSVN\bin;C:\Users\Administrator\A
    ms\Python\Python36', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS
    WSH;.MSC', 'PROCESSOR_ARCHITECTURE': 'AMD64', 'PROCESSOR_ID
    amily 6 Model 58 Stepping 9, GenuineIntel', 'PROCESSOR_LEVE
    EVISION': '3a09', 'PROGRAMDATA': 'C:\ProgramData', 'PROGRA
     Files', 'PROGRAMFILES(X86)': 'C:\Program Files (x86)', 'P
    ogram Files', 'PROMPT': '$P$G', 'PSMODULEPATH': 'C:\Window
    owerShell\v1.0\Modules\', 'PUBLIC': 'C:\Users\Public',
    ole', 'SYSTEMDRIVE': 'C:', 'SYSTEMROOT': 'C:\Windows', 'TE
    NI~1\AppData\Local\Temp', 'TMP': 'C:\Users\ADMINI~1\A
     'USERDOMAIN': 'USER-20171103BR', 'USERNAME': 'Administrato
    :\Users\Administrator', 'WINDIR': 'C:\Windows', 'WINDOWS
     'WINDOWS_TRACING_LOGFILE': 'C:\BVTBin\Tests\installpack
     '_DFX_INSTALL_UNSIGNED_DRIVER': '1'})
     
    os.pathsep    输出用于分割文件路径的字符串
    >>> os.pathsep
    ';'

    os.name 输出字符串指示当前使用平台。win->'nt'; Linux->'posix'

    os.system()  运行shell命令,直接显示

    # windows
    os.system("dir")
    
    # linux
    >>> os.system("ls")
    a  app    mysql
    0
    __file__   返回当前程序的相对路径程序本文件名
    os.path.abspath('')    # 返回path规范化的绝对路径  
    import os
    
    
    print(os.path.abspath(__file__))
    
    
    
    # 执行结果
    C:UsersAdministratorPycharmProjectsssSSSday5mod_testpython_packagemod2.py
    
    

     可以用abspath显示  .. 真实路径

    >>> os.path.abspath('..')
    'C:\Users'
    >>>
    >>>
    >>> os.path.abspath('.')
    'C:\Users\Administrator.QH-20170325TNQR'


    os.path.split('')  将path分割成目录和文件名二元组返回
    # linux
    >>> os.path.split('/data/a/1.txt')
    ('/data/a', '1.txt')
    os.path.dirname('')   返回path的目录。
    当前绝对路径目录名
    C:UsersAdministrator.QH-20170325TNQRPycharmProjectsSSday4


    os.path.basename('')  返回路径的文件名

    os.path.exists('') 如果path存在,返回True;如果path不存在,返回False
    # linux
    
    >>> os.path.exists('data/a')
    False
    >>> 
    >>> os.path.exists('/data/a')
    True
    os.path.isabs() 如果path是绝对路径,返回True    false
    windows 有多个/ linux 有/ 开头就是绝对路径
    
    # linux
    >>> os.path.isabs('/data/')
    True
    >>> 
    >>> os.path.isabs('data/')
    False
    
    
    # windows
    >>> os.path.isabs(r'c\:')
    False
    >>>
    >>>
    >>> os.path.isabs(r'ca')
    False
    >>> os.path.isabs(r'c:a')
    False
    >>>
    >>> os.path.isabs(r'c:a')
    
    
    os.path.isfile('')   如果path是一个存在的文件,返回True。否则返回False
    # linux
    >>> os.path.isfile('/data/a/1.txt')
    True
    >>> 
    >>> os.path.isfile('/data/a/')
    False
    os.path.isdir('')   如果path是一个存在的目录,则返回True。否则返回False
    
    
    # linux
    >>> os.path.isdir('/data/a')
    True
    >>> 
    >>> os.path.isdir('/data/a/1.txt')
    False
    
    
    os.path.join(path1[, path2[, ...]])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
    # linux
    >>> os.path.join('/data/','a','1.txt')
    '/data/a/1.txt'
    >>> os.path.join('/data/','a')
    '/data/a'
    print(os.path.getatime('.'))  # 返回path所指向的文件或者目录的最后存取时间
    1513219594.0753474

    print(os.path.getmtime('.')) # 返回path所指向的文件或者目录的最后修改时间
    1513219594.0753474
    
    
    
    os.path.getsize(path) 返回文件的大小
    getsize不能获取文件夹大小

    os.getpid() 查看自己pid

    如果有父进程 用这个查看父进程pid
    os.getppid()
     
  • 相关阅读:
    设计模式——创建型设计模式总结(简单工厂、普通工厂、抽象工厂、建造者、原型和单例)
    网易游戏2011招聘笔试题+答案解析
    华为2011上机笔试题2+参考程序
    趋势科技2011校招笔试题+答案解析
    腾讯2012实习生笔试题2+答案解析
    浙商银行2011笔试题+答案解析
    Linux学习笔记(三)——权限管理
    PowerShell在多个文件中检索关键字
    Linux学习笔记(一)——入门
    PowerShell函数调用问题
  • 原文地址:https://www.cnblogs.com/mingerlcm/p/8034051.html
Copyright © 2020-2023  润新知