• os,os.path,subprocess,configparser,xml shutil模块


    os 表示操作系统

    os模块是与操作系统交互的一个接口

    os.getcwd()获取当前工作目录,即当前python脚本工作的目录路径

    os.chdir(a)改变当前脚本工作目录,相当于shell下cd

    os.curdir返回当前目录('.')

    os.pardir获取当前父目录字符串名('..')

    os.makedirs(a)可生成多层递归目录

    os.removedirs(s)若目录为空,则删除,并递归到上一级目录,若也为空则删除以此类推

    os.makdir(a)生成单级目录

    os.rmdir()删除单级空目录,不为空则无法删除报错

    os.listdir()列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印

    os.remove()删除一个文件

    os.rename()重命名文件/目录

    os.stat()获取文件/目录信息

    os.sep 输出操作系统特定的路径分隔符

    os.linesep输出当前平台使用的行终止符

    os.pathsep输出用于分割文件路径的字符串

    os.name输出字符串指示当前使用平台

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

    os.environ获取系统环境变量

    os.path.abspath返回path规范化的绝对路径

    os.path.split将path分割成目录和文件名元组返回

    os.path.dirname返回path的目录,其实就是os.path.split的第一个元素

    os.path.basename返回path最后的文件名,如果path以/或结尾则返回空值

    os.path.exists如果path存在返回True不存在返回False

    os.path.isabs如果path是绝对路径返回True

    os.path.isfile如果path是一个存在的文件,返回true否则False

    os.path.isdir如果path是一个存在的目录返回True否则False

    os.path.join将多个路径组合后返回,第一个绝对路径之前的参数将被忽略

    oa.path.getatime返回path所指向文件或者目录的最后存取时间

    os.path.setmtime返回path所指向的文件或者目录最后修改时间

    os.path.getsize返回path的大小

    os.path.normcase在linux和mac平台上,该函数会原样返回path,在windows平台上会将路径中所有字符转换为小写并将所有斜杠转换为反斜杠

    os.path.normpath规范化路径

    shutil模块

    高级的文件文件夹压缩包处理模块

    shutil.copyfileobj()将文件内容拷贝到另一个文件中

    shutil.copyfileobj(open('a.txt','r'),open('b.txt','w'))

    shutil.copyfile()拷贝文件

    shutil.copyfile('1.txt','2.txt')目标文件无需存在

    shutil.copymode仅拷贝权限内容组用户均不变目标文件必须存在

    shutil.copystat仅拷贝状态的信息,包括mode,bits atime mtime flags目标文件必须存在

    shutil.copy拷贝文件和权限

    shutil.copy2拷贝文件和状态信息

    subprocess翻译为子进程

    进程指正在运行的程序

    子进程由另一个正在运行程序启动的程序

    为什么使用子进程?

    需要在当前进程调用另一个进程完成任务时

    os.system在执行时,直接将结果输出到控制台

    subprocess不仅可以启动子进程,还能与子进程进行数据交互

    dir表示要执行的命令

    shell表示dir是一个命令

    stdout指定输出管道

    管道在python中是传输数据的工具,本质是读写同一个文件

    p = subprocess.Popen("dir",shell=True,stdout=subprocess.PIPE)
    print(p.stdout.read())
    上面代码是 启动了一个dir子进程 并将结果输出到指定管道

    当需要在python中启动一个子进程,并且将它进行数据交互时就是用subprocess

    如果不需要数据交互可以使用os.system

    configparser创建一个配置文件解析器

    cfg=configparser.ConfigParser()

    读取名为test.cfg的配置文件必须指定编码

    cfg.read('test.cfg',encoding='utf-8')

    获取某个分区下的某个选项 第一个参数分区名 第二个选项名称
    username = cfg.get("mysql","username")

    以下三个函数是帮你封装了 类型转换
    cfg.getfloat()
    cfg.getint()
    cfg.getboolean()


    读取配置信息 两步
    1.读取某个配置文件
    2.调用get函数

    import configparser

    修改
    cfg = configparser.ConfigParser()
    cfg.read("test.cfg",encoding="utf-8")


    将mysql分区下的lock改为True
    cfg.set("mysql","lock","true")

    with open("test.cfg","wt",encoding="UTF-8") as f:
    cfg.write(f)

    添加新的选项 port 值为3306
    cfg = configparser.ConfigParser()
    cfg.read("test.cfg",encoding="utf-8")
    添加新的分区
    cfg.add_section("新分区")
    添加新的选项 port 值为3306
     cfg.set("mysql","port","3306")
    with open("test.cfg","wt",encoding="UTF-8") as f:
    cfg.write(f)

    删除
    cfg = configparser.ConfigParser()
    cfg.read("test.cfg",encoding="utf-8")

    删除分区
    cfg.remove_section("新分区")
     删除某个分区的选项
    cfg.remove_option("mysql","port")

    判断是否存在某个分区
    print(cfg.has_section("mysql"))
    判断是否存在某个选项
    print(cfg.has_option("mysql","username"))


    with open("test.cfg","wt",encoding="UTF-8") as f:
    cfg.write(f)

    作为配置文件 最常用的操作就是读取 很少会做修改
    总结: read读取配置文件
    add_section 添加分区
    set 如果没有这个选项则添加
    remove_section 删除分区
    remove_option 删除选项

    请使用配置文件记录登录用户名和密码 下次登录时直接读取配置文件
    在进行登录前 先判断是否存在用户名和密码在配置文件中
    如果有则读取配置文件并登录
    如果没有则正常输入用户名和密码 登录成功时将用户名和密码写入配置文件

  • 相关阅读:
    Vue 应用 nginx 配置 前后端不分离模式
    解决使用antd Modal组件时数据污染问题
    关于antd怎么在父组件中控制子组件的表单提交
    Web前端工程师面试题1-1
    Web前端工程师面试题7-4
    react 的 生命周期
    字符串的方法
    栈的基本算法
    node.js 获取文件目录
    bat脚本文件启动UG NX软件,动态调用外挂,以及设置环境变量
  • 原文地址:https://www.cnblogs.com/suncunxu/p/10096872.html
Copyright © 2020-2023  润新知