zoukankan      html  css  js  c++  java
  • 二. python的os模块

    一 .os模块

    os 模块包括了普遍操作系统的功能

    1.name获取操作系统类型

    import os
    print(os.name)    # nt                  代表是window模块

    2.environ 获取操作系统中的环境变量

    import os
    # 获取操作系统中的环境变量
    print(os.environ)

    3.get获取指定环境变量

    print(os.environ.get("PROGRAMFILES"))
    # C:Program Files

    4.curdir获取当前目录

    import os
    print(os.curdir)
    # .

    5.getcwd()获取当前工作目录

    import os
    print(os.getcwd())
    # D:老男孩教育

    6.listdir()返回指定目录下的所有文件

    import os
    print(os.listdir(r"D:1learnpythonpy21"))
    
    ['01.txt', '02.txt', '03.txt', '04.txt', '05.txt', 'HHH']
    print(os.listdir())
    ['.idea', '01day', '02day', '03day', '04day', '05day', 'cc.txt', 'test.py', '作业解析', '前面']

    7.mkdir  rmdir mkdir

    import  os
    
    # 创建文件目录
    os.mkdir("Study")
    
    # 删除目录
    os.rmdir("Study")
    
    
    # 创建绝对目录
    os.mkdir(r"E:Studypythonpy22HHH")

    # 重命名
    os.rename("Study","HHH")


    # 删除普通文件
    os.remove("HHH1.txt")

    8.stat获取文件属性

    import os
    print(os.stat("01day"))
    9.abspath查看当前的绝对路径
     print(os.path.abspath(".bbbb"))
    # D:老男孩教育.bbbb
    #
    print(os.path)
    # <module 'ntpath' from 'D:\python\lib\ntpath.py'>
     10.join拼接路径  split 拆分路径
    # 拼接路径
    # 注意参数二开始不能有斜杠
    p1=r"E:Studypythonpy2HHH"
    p2="name11"
    print(os.path.join(p1,p2)) #E:Studypythonpy2HHH
    ame11
    # 拆分路径
    path2=r"E:Studypythonpy2HHH"
    print(os.path.split(path2)) #('E:\Studypython\py2', 'HHH')拆分就变成元组了     
    11.splitext获取扩展名
    import os
    
    
    path3="D:1learnpythonpy211.txt"
    print(os.path.splitext(path3))
    
    #('D:x01learnpython\py2x01x01', '.txt')
    12.isdir  判断是否为目录  isfile 是否为文件
    import os
    
    path3="D:1learnpythonpy211.txt"
    # 判断是否为目录
    print(os.path.isdir(path3)) #False


    # 判断文件是否存在
    print(os.path.isfile("HHH")) #False

     
     13.exists判断目录是否存在
    path6= r"F:dbnodeloginmd5"
    print(os.path.exists(path6))  # True
     14.getsize()获取文件大小
    # 获取文件大小
    path9= r"F:dbnodeloginmd5login.js"
    print(os.path.getsize(path9))   #1717字符

    15.dirname获取文件目录

    # dirname获取文件目录
    path3="D:1learnpythonpy211.txt"
    print(os.path.dirname(path3))
    # D:learnpython
    # dirname获取文件目录
    path10= r"F:dbnodeloginmd5login.js"  
    print(os.path.dirname(path10))   # F:dbnodeloginmd5
    
    
    
    # 获取文件名
    print(os.path.basename(path10)) #login.js
    
    
    
    
    
    
    返回指定路径下的文件和文件夹列表
    os.listdir(path)
    os案例
    # 队列就是先进去的 就先走           相当于排队   
    # 
    # 
    import collections
    import os
    
    # 队列是先进先出
    
    def aa(path):
       # 创建一个队列
       queue=collections.deque()
       # 进队
       queue.append(path)
       while len(queue)!=0:
          # 出队取数据
          dirPath=queue.popleft()
          # 找出所有文件
          filesList=os.listdir(dirPath)
          for fileName in filesList:
    
                # 绝对路径
             fileAbsPath=os.path.join(dirPath,fileName)
                #print(fileAbsPath)
                    # E:Studypythonpy2dir.project
                    # E:Studypythonpy2dir2
                    # E:Studypythonpy2dirapp.js
                    # E:Studypythonpy2dircontroller
                    # E:Studypythonpy2dirmodels
                    # E:Studypythonpy2dir
    ode_modules
                    # E:Studypythonpy2dirpackage.json
                    # E:Studypythonpy2dirpublic
                    # E:Studypythonpy2diruploads
                    # E:Studypythonpy2dirviews
              # 判断是否为目录
             if os.path.isdir(fileAbsPath):
                print("目录-----"+fileName)
                  #目录-----controller
                  # 目录-----models
                  # 目录-----node_modules
                queue.append(fileAbsPath)
             else:
                 print("普通文件-----"+fileName)
    
    
       #           普通文件-----index.js
                # 普通文件-----callsite-tostring.js
                # 普通文件-----event-listener-count.js
                # 普通文件-----index.js
    aa(r"E:Studypythonpy2dir")
    
    
    # 深度遍历  利用 进栈 和 出栈  的知识
    
    import os
    
    def getAllDir(path):
    # 得到目录下的所有目录
       filesList=os.listdir(path)
        # 处理每一个文件、
       for fileName in filesList:
    
    
           # 判断路径  是否觉对路径  
          fileAbsPath=os.path.join(path,fileName)
    
          if os.path.isdir(fileAbsPath):
    
              print("目录"+fileName)
    
              getAllDir(fileAbsPath)
          else:
                print("普通文件"+fileName)
    
    getAllDir(r"E:Studypythonpy2dir")
    # 深度遍历  利用 进栈 和 出栈  的知识
    
    
    
    import os
    
    def getAllDirDE(path):
    
        stack=[]
        stack.append(path)
       # print(stack)                                    # ['E:\Studypython\py2\dir']
       处理栈 当前栈为空的时候结束循环
        while len(stack)!=0:
    
             从栈里取出数据
              dirPath=stack.pop()
             # print(dirPath)                            # E:Studypythonpy2dir
              目录下所有文件
              filesList=os.listdir(dirPath)
              #print(filesList)                          # ['.project', '2', 'app.js', 'controller', 'models', 'node_modules', 'package.json', 'public', 'uploads', 'views']
            
              处理每一个文件 如果是普通文件则打印 如果是目录则将改目录的地址压栈
              for fileName in filesList:
                   
                 # print(fileName)                        # .project 2 app.js controller models node_modules package.json public uploads views
    
                  fileAbsPath=os.path.join(dirPath,fileName)
    
                  #print(fileAbsPath)
                    #E:Studypythonpy2dir.project
                    # E:Studypythonpy2dir2
                    # E:Studypythonpy2dirapp.js
                    # E:Studypythonpy2dircontroller
                    # E:Studypythonpy2dirmodels
                    # E:Studypythonpy2dir
    ode_modules
                    # E:Studypythonpy2dirpackage.json
                    # E:Studypythonpy2dirpublic
                    # E:Studypythonpy2diruploads
                    # E:Studypythonpy2dirviews
                    # 
                  if os.path.isdir(fileAbsPath):
    
                      是目录就压栈
                    print("目录---"+fileName)
                        # 目录---2
                        # 目录---controller
                        # 目录---models
                        # 目录---node_modules
                        # 目录---public
                        # 目录---uploads
                        # 目录---views
                    stack.append(fileAbsPath)
                     #print(stack)
                        #['E:\Studypython\py2\dir\2']
                        # ['E:\Studypython\py2\dir\2', 'E:\Studypython\py2\dir\controller']
                        # ['E:\Studypython\py2\dir\2', 'E:\Studypython\py2\dir\controller', 'E:\Studypython\py2\dir\models']
                        # ['E:\Studypython\py2\dir\2', 'E:\Studypython\py2\dir\controller', 'E:\Studypython\py2\dir\models', 'E:\Studypython\py2\dir\node_modules']
                        # ['E:\Studypython\py2\dir\2', 'E:\Studypython\py2\dir\controller', 'E:\Studypython\py2\dir\models', 'E:\Studypython\py2\dir\node_modules', 'E:\Studypython\py2\dir\public']
                                       
                  else:
    
                         打印普通文件
                      print("普通文件--"+fileName)
    
          #                   普通文件--.project
                            # 普通文件--app.js
                            # 普通文件--package.json
                            # 普通文件--album.ejs
                            # 普通文件--err.ejs
                            # 普通文件--index.ejs
                            # 普通文件--1 - 副本.jpg
                            # 普通文件--1.jpg
                            # 普通文件--2 - 副本.jpg
                            # 普通文件--2.jpg
                            # 普通文件--3 - 副本.jpg
                            # 普通文件--3.jpg
                            # 普通文件--4 - 副本.jpg
                            # 普通文件--4.jpg
                            # 普通文件--5 - 副本.jpg
                            # 普通文件--5.jpg
                            # 普通文件--bootstrap.js
                            # 普通文件--bootstrap.min.js
                            # 普通文件--jquery-1.12.4.js
                            # 普通文件--npm.js
                            # 普通文件--1.jpg
                            # 普通文件--2.jpg
                            # 普通文件--4.png
     
    
    getAllDirDE(r"E:Studypythonpy2dir")
    os 栈
    
    
    二 .sys模块 
    sys模块 是与python解释器交互模块
    import sys
    
    # sys模块 是与python解释器交互模块
    print(sys.platform)   # 返回操作系统
    
    print(sys.argv)    #  返回第一个元素程序本身路径
    
    print(sys.version)     #  返回python版本
    
    print(sys.path)    #  返回环境变量的路径
    # 
    # win32
    # ['D:/老男孩教育/03day/sys模块/01.py']
    # 3.6.3 (v3.6.3:2c5fed8, Oct  3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)]
    
    # ['D:\老男孩教育\03day\sys模块', 'D:\老男孩教育', 'D:\python\python36.zip', 'D:\python\DLLs', 
    #  'D:\python\lib', 'D:\python', 'D:\python\lib\site-packages',
    #  'D:\python\lib\site-packages\tornado-5.1.1-py3.6-win-amd64.egg']
    import sys
    
    # sys模块 是与python解释器交互模块
    print(sys.platform)   # 返回操作系统
    
    print(sys.argv)    #  返回第一个元素程序本身路径
    
    print(sys.version)     #  返回python版本
    
    print(sys.path)    #  返回环境变量的路径
    # 
    # win32
    # ['D:/老男孩教育/03day/sys模块/01.py']
    # 3.6.3 (v3.6.3:2c5fed8, Oct  3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)]
    
    # ['D:\老男孩教育\03day\sys模块', 'D:\老男孩教育', 'D:\python\python36.zip', 'D:\python\DLLs', 
    #  'D:\python\lib', 'D:\python', 'D:\python\lib\site-packages',
    #  'D:\python\lib\site-packages\tornado-5.1.1-py3.6-win-amd64.egg']
    import sys
    
    
    # 返回程序执行的本身路径
    print(sys.argv)
    # ['D:/learnPython/py5/02sys模块.py']
    
    
    
    # print=(sys.exit(n))
    
    # 查看版本
    print(sys.version)
    # 3.6.3 (v3.6.3:2c5fed8, Oct  3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)]
    
    # print(sys.maxint)
    
    
    # 返回模块的搜索路径 
    print(sys.path)
    # ['D:\learnPython\py5', 'D:\learnPython', 'D:\python\python36.zip', 'D:\python\DLLs', 'D:\python\lib', 'D:\python', 'D:\python\lib\site-packages']
    
    
    
    # 返回操作系统
    print(sys.platform)  
    # win32
    
    
    
    
    # 进度条
    import time
    for i in range(30):
    
        sys.stdout.write("#")
    
        time.sleep(0.1)
        sys.stdout.flush()   # flush() 刷新
     
     
     
    
    
    
  • 相关阅读:
    Qt多线程学习:创建多线程
    多线程和多进程的差别(小结)
    CHD4 impala安装配置
    虚拟化之vmware-vcenter
    Java实现第九届蓝桥杯测试次数
    Java实现第九届蓝桥杯测试次数
    Java实现第九届蓝桥杯测试次数
    Java实现第九届蓝桥杯测试次数
    Java实现第九届蓝桥杯复数幂
    Java实现第九届蓝桥杯复数幂
  • 原文地址:https://www.cnblogs.com/Sup-to/p/10854305.html
Copyright © 2011-2022 走看看