python 2.01 内置模块 os

内置函数 os 操作系统进行交互

  1. os模块 判断文件或者目录是否存在 os.exists

    os.path.exists(r'D:\Python之旅\123.txt')
    os.path.exists(r'imgaes')
    
  2. 重明名文件 os.rename(原文件名,新文件)

    重命名文件
    os.rename('123.py','456.py')
    
  3. 删除文件 os.remove

    删除文件 
    os.remove('123.txt')
    
  4. print(file) 打印当前文件的绝对路径

    print(__file__)
    
  5. os.path.abspath(当前文件的绝对路径)

  6. os.getcwd() # 获取当前文件的文件夹

    data = os.getcwd() # 获取当前文件的目录
    data = os.path.dirname(data)  # 获取当前文件的目录的上一级目录
    
    print(data)
    
  7. os.path.dirname(file)返回当前文件的上一级的目录

  8. os.path.dirname(os.path.abspath(file))取文件所在目录的绝对路径

    BASE_log = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))  # 取当前文件的根目录
    BASE_log = os.path.dirname(os.path.dirname(__file__))  # 取当前文件的上一级目录
    
    print(BASE_log) # 返回当前文件目录
    
    # print(BASE_log1)  #返回当前文件的根目录
    
    BASE_log1 = os.path.dirname(os.path.abspath(__file__))
    
    print(BASE_log1) # 返回当前文件目录的绝对路径
    
  9. windows和linux目录分割符不同,为了解决兼容问题,使用os.path.join(目录,文件名) 拼接,不需要使用 /

    BASE_log = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
    log_path  = r'%s\log\access.log'%(BASE_log)
    log_path =os.path.join(BASE_log,'log','access.log')
    
  10. 判断路径是否存在os.path.isdir

  11. 递归创建文件夹 os.makedirs() 创建目录 os.mkdir

  12. 判断是否是文件夹 os.isdir

  13. 空文件夹删除os.rmdir ()

  14. 删除目录os.removedirs()

    创建递归目录
    os.makedirs(r'D:\1\1\1\1')
    创建目录
    os.mkdir(r'D:\1')
    
    删除目录
    删除多级目录
    os.removedirs('')
    
    只能删除空目录
    os.rmdir('')
    
  15. 当前执行文件环境变量的查询添加 - 程序结束后就没有了, 临时使用

    os.environ['longin_user']='zhangsan'  # 添加到环境变量的字典中
    print(os.environ)
    
  16. os启动 关闭软件 打开资源管理器

    # 打开一个软件 + 路径
    # os.startfile(r'firefox.exe')
    
    #  普通文件或者软件 使用os.startfile() 函数打开
    
    def statr_exe(exe):
        # p4 用subprocess.Popen 启动
        subprocess.Popen(exe)
    
    
    def network_file_dir(name):
        # 远程共享文件使用 explorer 打开
        os.system("explorer.exe %s"%name)
    
    
    def kill_process(name):
        os.system('taskkill /T /F /im  %s'%name)
    
  17. 在指定目录下找文件

    # 指定目录下查找
    path = r"D:\Program Files"
    #
    # dirs= os.listdir(path)
    # for file in dirs:
    #
    #     print(file)
    
    
    

print(os.listdir(r'D:\python_work'))

返回指定路径下的文件和文件夹列表。
返回的数据类型是列表

  1. os.walk(dirpath)

    
    
    
    
    def search_filedir(file_name,dirpath='C:'):
        # path = r"D:\Program Files"
        for root ,dirs,files in os.walk(dirpath):
            # print(dirs)
            for file in files:
                if file_name == file:
                    return os.path.join(root,file_name)
    
    res = search_filedir('python.exe')
    

sys.exit(n)

标准的退出函数,会抛出一个 SystemExit 异常,可以在捕获异常处执行其他工作,比如清理资源占用
如果 n 为 0,则表示成功; 非 0 则会产生非正常终止
另外,除了可以传递整型,也可以传递对象,比如 None 这将等价于数字 0,如果值不是 None 那么其他类型的对象都视为数字 1(也就是非正常终止)
在实际应用中,可以使用 sys.exit("YOUR ERROR MSG") 当做快捷退出程序的方式并附加一段消息

os._exit(n)

直接退出进程,并返回状态 n,不处理清理过程,不刷新标准输入输出 buffers。
标准退出请使用 sys.exit(n), os._exit(n) 一般用于 os.fork() 创建的子进程。

quit()

只被用于解释器

exit()

quit()exit() 的出现更多是出于用户友好的目的(因为 exit() 更常见一些,更符合用户习惯一些?)

总结

正常使用 sys.exit(n)
os.fork() 创建的子进程使用 os._exit(n)
在解释器调试使用 quit()/exit()

posted @ 2021-12-21 11:15  mmszxc  阅读(38)  评论(0)    收藏  举报