zoukankan      html  css  js  c++  java
  • os模块

    shelve
    open打开文件,类似字典
    用于序列化,序列化的中间格式,不能跨平台

    sys
    跟解释器相关的
    sys.argv 获取调用解释器传递的参数
    sys.path

    os

    os operation system
    操作系统
    该模块处理与操作系统相关的操作
    最常用的是文件操作
    打开,读取,写入,删除,复制,重命名
    os.getcwd()获取当前工作目录,当前执行文件所在文件夹路径
    os.chdir 改变当前脚本工作目录
    os.makedirs可创建多层目录
    创建多级目录,可以自动创建中间的目录,
    os.makedirs("a/b/c")已存在报错
    创建单个文件夹,会把c1,a1当做已存在路径
    os.mkdir("c1/a1/a")
    os.rmdir("a")必须保证文件夹为空
    os.removedirs("c")c中为空,则上层为空的话一并删除
    os.remove()删除一个文件
    os.sep获取当前系统的路径分隔符
    os.linesep获取当前系统的换行符
    os.name获取当前操作系统
    os.system执行系统命令
    os.envion操作系统环境变量
    什么时候使用os
    当需要操作文件及文件夹的时候
    重点放在对文件的增删改查
    
    
    os.path
    path 翻译为路径
    该模块用于处理路径
    之所以有这个模块,是因为python是跨平台的,各平台的路径书写方式不同,所以将所有与路径相关都进行了封装,使用了path后,你的程序就是夸平台的,不会因为路径而产生错误
    os.path.abspath()返回绝对路径
    文件不存在也会拼接
    把当前执行文件所在文件夹与你给的参数进行拼接
    os.path.split
    将路径分隔为文件夹和文件名
    实际就是将最后一部分切割
    os.path.dirname
    返回上一级文件夹
    os.path.basename
    返回文件名称
    os.path.exists()
    如果path存在返回True,不存在返回False
    os.path.isabs
    是否为绝对路径
    os.path.isfile(path)
    是否是文件
    os.path.isdir()
    是否是文件夹
    os.path.join
    拼接
    如果有多个盘符,取最近的那一个
    os.path.getsize
    获取文件大小
    os.path.normcase
    左右斜杠共存时会按照操作系统统一
    os.path.normpath
    实现..的功能
    总结:主要处理路径,不会关心路径是否存在,只是做拼接,剪切,转换等等操作
    通常是与os一起使用
    优点:用它处理的路径是可以跨平台的
    
    subprocess
    子进程,进程就是一个正在运行的程序
    tasklist | findstr cmd
    子进程是由另一个正在运行的程序启动的程序,例如qq聊天,点击了一下链接,打开了浏览器,那么浏览器就称之为qq的子进程
    为什么使用子进程
    当我们有一个任务需要处理,而自己的程序无法处理,所以需要开启另一个程序
    在python想要获取所有的进程信息
    os.system在执行系统指令时也可以命令操作系统启动某个程序
    0 正常执行
    os.system在执行时直接把结果输出到控制台,这并不是我们想要的结果
    subprocess不仅可以启动子进程,还能与子进程进行数据交互
    import subprocess
    #dir 表示要执行的命令
    #shell 表示dir是一个命令
    #stdout 指定输出管道
    #管道相当于生活中的水管,水可以通过管道从一个地方流到另一个地方,在程序中,数据相当于水,管道的作用,就从一个进程中把数据传输到另一个进程里,本质上是读写同一个文件
    p = subprocess.Popen("dir",shell = True ,stdout = subprocess.PIPE)
    print(p.stdout.read())
    p1 = suprocess.Popen("tasklist",shell= True,stdout = subprocess.PIPE)
    p2 = subprocess.Popen("findstr cmd",shell = True, stdin = p1.stdout, stdout = subprocess.PIPE)
    在python中启动一个子进程,并且与它进行数据交互时就使用subprocess,如果不需要数据交互,os.system
    stderr = subprocess.PIPE,当进程出错时,存储错误信息
    
    configparser
    配置解析,解析配置文件的
    1.数据的值不是固定的
    2.可以由用户来指定的
    section 标题
    option 选项
    [mysql]#section
    username = jack#option
    password = 123
    默认都是字符串
    注意:分区名称不能重复
    	同一个分区下不能有重复option
    import configparser
    创建一个配置文件解析器
    cfg = configpatser.ConfigParser()
    读取名为test.cfg的文件
    cfg.read("test.cfg",encoding = "utf8")
    读取分区:
    cfg.sections()#存为列表
    获取某个分区下的某个选项,第一个参数分区名,第二个选项名
    password = cfg.getint("mysql","password")
    cfg.getboolean
    cfg.getfloat
    读取配置信息分两步:
    1.读取某个配置文件
    2.调用get函数
    configparser增加修改删除
    import configparser
    cfg = configparser.ConfigParser
    cfg.read("test.cfg",encoding="utf8")
    cfg.set("mysql","lock","True")
    with open("test.cfg","wt",encoding = "utf8")as f:
    	cfg.write(f)    
    cfg.add_section("dango")
    cfg.remove_section("dango")
    cfg.remove_option("mysql","lock")
    cfg.has_section
    cfg.has_option
    
    
    import shutil
    shutil 模块是一个工具包,封装了文件的高级操作,让你操作起来更方便
    提供了压缩与解压缩
    #压缩文件,支持的格式zip,tar
    shutil.make_archive("待压缩文件名","格式","文件存哪")
    #解压
    shutil.unpack_archive
    ("待解压文件”,“格式","解压后放哪")
    
    
  • 相关阅读:
    19. 删除链表的倒数第 N 个结点
    相交链表
    环形链表2
    环形链表
    K8s 网络通讯
    Hutool-二维码生成
    Hutool-加解密
    Hutool-解析JSON
    Hutool-读取配置文件中的配置
    Hutool-操作图片
  • 原文地址:https://www.cnblogs.com/robert-zhou/p/10099141.html
Copyright © 2011-2022 走看看