Python模块之OS,subprocess

摘要:
模块使用操作。路径abspath():返回当前文件os的绝对路径。路径split():将路径拆分为文件夹和文件名os。路径exist():确定路径是否存在,如果存在则返回true,返回false。路径isabs():确定绝对路径和相对路径,判断路径是否以“”os.path开头。isfile():判断它是否是现有文件夹os.path。isdir():它存在并且是文件夹os.path.join:将路径字符串与当前平台分隔符拼接。当有多个驱动器号时,默认情况下拼接从最后一个驱动器号开始。

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不仅可以启动子进程,还能与子进程进行数据交互!

    import subprocess
    ​
    ​
    # 命令操作系系统调用一条命令,此结果无异于os.system()
    p = subprocess.Popen('dir',   # 'dir' 系统命令 
                         shell=True)  # shell=True标明这是一个系统命令
    print(p)
    ​
    ​
    # 为了让subprocess能进行数据交互,我们还需要设置另外一项:管道类型
    # 管道:就是将数据从一个程序传到另一个程序,本质上是读写同一个文件
    # stdin :表示输入人交给子进程的数据
    # stdout :表示子进程返回的数据
    # stderr :表示子进程发送的错误信息
    p1 = subprocess.Popen('dir', 
                          shell=True,
                          stdout=subprocess.PIPE)
    print(p1.stdout.read().decode('gbk'))
    ​
    ​
    # 将p1的输出结果作为p2的输入
    p2 = subprocess.Popen('dir',   # 系统命令
                          shell=True,   # 向程序标明这是系统命令而不是字符串
                          stdin=p1.stdout,  # 将p1的数据传入
                          stdout=subprocess.PIPE,  # p2返回的数据
                          stderr=subprocess.PIPE  # 当进程执行错误时输出信息
                          )
    print(p2.stdout.read().decode('gbk'))  # windows 系统默认gbk编码

    总结:当你需要在python中启动一个子进程 并且它进行数据交互时就使用subprocess

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

     

 

免责声明:文章转载自《Python模块之OS,subprocess》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇常用模块之configpaser与shutilPython日志(logging)模块,shelve,sys模块下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

我常用的Windows软件

raphaelzhang / my-softs / overview — Bitbucket 我常用的Windows软件 Clone this repository (size: 819.5 KB):HTTPS /SSHhg clone https://bitbucket.org/raphaelzhang/my-softs hg clone ssh://...

python代码审查工具 gleam_py 博客园

python代码审查工具 - gleam_py - 博客园 python代码审查工具 这两天看了python相关代码的审查、覆盖等工具,先记录下来,后边再总结其用法。 1、python的review工具 a、Review board:Review board是一个 基于web 的工具,主要设计给django和python的用户。Review board可...

python技巧26[python的egg包的安装和制作]

python技巧26[python的egg包的安装和制作] - iTech - 博客园 python技巧26[python的egg包的安装和制作] 一 setuptools 和easy_install setuptools:setuptools 是一组由PEAK(Python Enterprise Application Kit)开发的 Python 的...

ANSI colored Python logging — Gist

ANSI colored Python logging — Gist import logging from termcolor import colored class ColorLog(object): colormap = dict( debug=dict(color='grey', attrs=['bold']), info=dic...

Python 之subprocess模块

Python subprocess模块运行python的时候,我们都是在创建并运行一个进程。像Linux进程那样,一个进程可以fork一个子进程,并让这个子进程exec另外一个程序。在Python中,我们通过标准库中的subprocess包来fork一个子进程,并运行一个外部的程序。subprocess包中定义有数个创建子进程的函数,这些函数分别以不同的方式...

如何用Python输出PPT中的文字信息

在这里,会用到win32com模块 模块下载地址:http://sourceforge.net/projects/pywin32/files/pywin32/ 代码如下: importwin32com from win32com.client importDispatch, constants ppt = win32com.client.Dis...