os模块

前言:

os和sys模块使用起来容易模糊,写一下官方的解释。

 os模块提供了一种方便的用户操作操作系统的函数方法

sys模块提供由解释器使用或者维护的变量与解释器进行交互的函数

总结:    os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口;sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python的运行时环境。

 

Python的标准库中的os模块主要涉及普遍的操作系统功能。可以在Linux和Windows下运行,与平台无关。

导入模块

import os

os模块

os模块常用方法

常用文件和文件夹的操作

  • getcwd()
    • 获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹)
    • result = os.getcwd()
      print(result) 
  • chdir()
    • 改变当前工作目录
    • os.chdir('/home/sy')
      result = os.getcwd()
      print(result)
  • listdir()
    • 获取指定文件夹内所有内容的名称列表
    • result = os.listdir('/home/sy')
      print(result)
  • mkdir()
    • 创建文件夹
    • os.mkdir('girls')
  • makedirs()
    • 递归创建文件夹
    • os.makedirs('/home/sy/a/b/c/d')
  • rmdir()
    • 删除空目录
    • os.rmdir('girls')
  • removedirs()
    • 递归删除文件夹,必须都是空目录
    • os.removedirs('/home/sy/a/b/c/d')
  • rename()
    • 文件或者文件夹重命名
    • os.rename('/home/sy/a','/home/sy/alibaba'
      os.rename('02.txt','002.txt'
  • stat()
    • 获取文件或者文件夹的信息
    • result = os.stat('/home/sy/PycharmProject/Python3/10.27/01.py)
      print(result)
  • system()
    • 执行系统命令(危险函数)
    • result = os.system('pwd')
      print(result)

常用环境变量的操作

环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。

  • getenv()
    • 获取系统的环境变量
    • result = os.getenv('PATH')
      print(result.split(':'))
  • putenv()
    • 将一个目录添加到环境变量中(临时增加,只对当前脚本有效)
    • os.putenv('PATH','/home/sy/下载')
      os.system('syls')

其他方法

  • exit()
    • 退出终端的命令  

os模块中常用的属性

  • curdir
    • 表示当前文件夹,但是一般用'.'来表示,一般情况下可以省略
    • print(os.curdir)
  • pardir
    • 表示上层文件夹,但是一般用'..'来表示,不可以省略
    • print(os.pardir)
  • name
    • 获取代表操作系统的名称或者字符串
    • print(os.name)   #posix -> linux或者unix系统  nt -> window系统 
  • sep
    • 获取系统路径间间隔符
    • print(os.sep)    # window ->\    linux ->/
  • extsep
    • 获取文件名称和后缀之间的间隔符号
    • print(os.extsep)        #  window和inux -> .
  • linesep
    • 获取操作系统的换行符号
    • print(repr(os.linesep))    # window -> \r\n  linux/unix -> \n 

os.path子模块

常用方法

  • abspath()
    • 将相对路径转换为绝对路径
    • path = './boys'#相对
      result = os.path.abspath(path)
      print(result)
  • dirname()
    • 获取完整路径当中的目录部分
    • path = '/home/sy/boys'
      result = os.path.dirname(path)
      print(result)   # /home/sy
  • basename()
    • 获取完整路径当中的主体部分
    • path = '/home/sy/boys'
      result = os.path.basename(path)
      print(result)   # boys
  • split()
    • 将一个完整的路径切割成目录部分和主体部分
    • path = '/home/sy/boys'
      result = os.path.split(path)
      print(result)       # ('/home/sy', 'boys')
  • join()
    • 将两个路径合并成一个
    • var1 = '/home/sy'
      var2 = '000.py'
      result = os.path.join(var1,var2)
      print(result)       # /home/sy\000.py  , 产生这个结果的原因是,我在window下运行,用的是Linux下的目录,但是拼接它采用的是当前系统默认的路径间间隔符,而window默认的是‘\’。
  • splitext()
    • 将一个路径切割成文件后缀和其他两个部分,主要用于获取文件的后缀
    • path = '/home/sy/000.py'
      result = os.path.splitext(path)
      print(result)       # ('/home/sy/000', '.py')
  • getsize()
    • 获取文件的大小
    • path = './000.py'
      result = os.path.getsize(path)
      print(result)   # 1981
  • isfile()  
    • 检测是否是文件
    • path = '/home/sy/000.py'
      result = os.path.isfile(path)
      print(result)
  • isdir()
    • 检测是否是文件夹
    • result = os.path.isdir(path)
      print(result)
  • islink()
    • 检测是否是一个软链接
    • path = '/initrd.img.old'
      result = os.path.islink(path)
      print(result)
  • 关于文件的操作时间
    • #getctime() 获取文件的创建时间 get create time
      #getmtime() 获取文件的修改时间 get modify time
      #getatime() 获取文件的访问时间 get active time
    • import time
      
      filepath = '/home/sy/下载/chls'
      
      result = os.path.getctime(filepath)
      print(time.ctime(result))
      
      result = os.path.getmtime(filepath)
      print(time.ctime(result))
      
      result = os.path.getatime(filepath)
      print(time.ctime(result))
  • exists()
    • 检测某个路径是否真实存在
    • filepath = '/home/sy/下载/chls'
      result = os.path.exists(filepath)
      print(result)
  • isabs()
    • 检测一个路径是否是绝对路径
    • path = '/boys'
      result = os.path.isabs(path)
      print(result)   # True
  • samefile()
    • 检测两个路径是否指向是同一个文件
    • path1 = '/home/sy/下载/001'
      path2 = '../../../下载/001'
      result = os.path.samefile(path1,path2)
      print(result) 
  • ismount()
    • 检查指定参数是否是挂载点
    • os.path.ismount("/mnt/cdrom")

常用属性

  • environ
    • 获取和设置系统环境变量的内置值
      • 获取, 和os中的os.getenv('PATH')同效果
        • print(os.environ['PATH'])
      • 设置
        • os.environ['PATH'] += ':/home/sy/下载'
          os.system('chls')

           

 

posted @ 2018-08-09 11:29  苦行僧95  阅读(172)  评论(0编辑  收藏  举报