Python模块之OS,subprocess

太过爱你忘了你带给我的痛 2021-09-20 11:52 762阅读 0赞

1.os 模块

  • 简述: os 表示操作系统

    该模块主要用来处理与系统相关操作

    最常用的是文件操作

    打开 获取 写入 删除 复制 重命名

  • 常用操作

    • os.getcwd() : 返回当前文件所在文件夹路径
    • os.chdir() : 修改当前工作目录
    • os.curdir(): 获取当前目录的字符串表现方式
    • os.makedir():创建多级目录,如果中间目录不存在会自动创建
    • os.mkdir():创建单级目录
    • os.rmdir():删除文件夹(仅在文件夹为空时才能删除)
    • os.stat():获取一个生成器类型存放文件的各种信息
    • os.sep():获取当前路径分隔符(各平台分隔符不同)
    • os.linesep():获取换行符
    • os.system():执行系统命令
  • 总结:什么时候用os模块

    • 需要操作文件及文件夹的时候

      重点放在对文件的增删查改

  • os.path(重要)

  • 概述:path 翻译为路径,即该模块就是用于处理路径的

  • 用途:p程序在跨平台使用时,各平台的路径写法不同,所以与要用到本模块进行处理封装,保证以后的跨平台使用不会因为路劲产生bug。
  • 模块的用法

    1. os.path.abspath() :返回当前文件的绝对路径
    2. os.path.split():将路径分割成文件夹和文件名
    3. os.path.exist():判断一个路径是否存在,存在返归True,不存在返回False
    4. os.path.isabs():判断绝对路径和相对路径,判断本则是路径是否是“\”开头
    5. os.path.isfile():判断是否是一个存在的文件夹
    6. os.path.isdir():存在并且是一个文件夹
    7. os.path.join(“str”): 以当前平台分割符对路径字符串进行拼接,当存在多个盘符时,默认以最后一个盘符开始进行拼接。
    8. os.path.getsize():获取文件的大小(字节)
    9. os.path.getatime(path):获取最后存取时间
    10. os.path.getmtime(path):获取最后修改时间
    11. 规范化路径:

      1. os.path.normcase(path):大写变小写,斜杆变为当前操作系统平台识别斜杠
      2. os.path.normpath(path):斜杠规范化,识别路径中的”..”,返回上一级目录

2.subprocess模块

  • 定义:subprocess模块称之为子进程,进程指的是是一个正在运行的程序
  • 为什么要用子进程:

    当有一个任务需要处理,但当前程序无法处理,则需要通过当前程序调用另外一个程序进行处理,则这另外一个程序就称之为当前程序的子进程

  • 如何用subprocess模块

    subprocess模块可以命令操作系统打开另外一个子进程,这类功能类似于os模块下的os.system()函数,os.system只能把执行结果输出到控制台,无法返回执行结果,那subprocess不仅可以启动子进程,还能与子进程进行数据交互!

    1. import subprocess
    2. # 命令操作系系统调用一条命令,此结果无异于os.system()
    3. p = subprocess.Popen('dir', # 'dir' 系统命令
    4. shell=True) # shell=True标明这是一个系统命令
    5. print(p)
    6. # 为了让subprocess能进行数据交互,我们还需要设置另外一项:管道类型
    7. # 管道:就是将数据从一个程序传到另一个程序,本质上是读写同一个文件
    8. # stdin :表示输入人交给子进程的数据
    9. # stdout :表示子进程返回的数据
    10. # stderr :表示子进程发送的错误信息
    11. p1 = subprocess.Popen('dir',
    12. shell=True,
    13. stdout=subprocess.PIPE)
    14. print(p1.stdout.read().decode('gbk'))
    15. # 将p1的输出结果作为p2的输入
    16. p2 = subprocess.Popen('dir', # 系统命令
    17. shell=True, # 向程序标明这是系统命令而不是字符串
    18. stdin=p1.stdout, # 将p1的数据传入
    19. stdout=subprocess.PIPE, # p2返回的数据
    20. stderr=subprocess.PIPE # 当进程执行错误时输出信息
    21. )
    22. print(p2.stdout.read().decode('gbk')) # windows 系统默认gbk编码
  1. **总结:**当你需要在python中启动一个子进程 并且它进行数据交互时就使用subprocess
  2. 如果不需要数据交互,可以使用os.system

转载于:https://www.cnblogs.com/liusijun113/p/10098377.html

发表评论

表情:
评论列表 (有 0 条评论,762人围观)

还没有评论,来说两句吧...

相关阅读

    相关 python模块

    1 定义 模块: 用来从逻辑上组织python代码(变量 函数 类 逻辑:   实现一个功能) 本质就是.py结尾的python文件(文件名:test.py 对应的模块名就是

    相关 python模块 paramiko

    paramiko模块提供了ssh及sft进行远程登录服务器执行命令和上传下载文件的功能。这是一个第三方的软件包,使用之前需要安装。 1 基于用户名和密码的 sshclient

    相关 Python模块

    1、模块:一个.py文件就构成一个模块重点内容 引入模块:import 模块名称(通过引入模块,我们可以调用引入模块里面的程序) 引入模块并重新命名:import 模块

    相关 pythonparamiko模块

    paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作,paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的