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的更多相关文章

  1. python 模块之os.path模块

    # -*- coding: cp936 -*- #python 27 #xiaodeng #python 模块之os.path模块 #http://www.cnblogs.com/dkblog/arc ...

  2. python 模块之-os

    python  os模块 import os os.getcwd()       # python脚本所在工作目录的路径 os.chdir(r'/tmp')        # 切换目录到tmp os. ...

  3. 潭州课堂25班:Ph201805201 python 模块json,os 第六课 (课堂笔记)

    json 模块 import json data = { 'name':'aa', 'age':18, 'lis':[1,3,4], 'tupe':(4,5,6), 'None':None } j = ...

  4. python初步学习-python模块之 os

    os os 模块在运维工作中是很常用的一个模块.通过os模块调用系统命令.os模块可以跨平台使用. 在 import os的时候,建议使用import os而非from os import *.这样可 ...

  5. Python模块之-OS模块

    一.os模块概述 Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.(一语中的) 二.常用方法 1.os.name 输出字符串指示正在使用的平台 ...

  6. Python模块:os

    OS模块常用用法: os.name() #判断当前使用的系统环境,windows则返回 ‘nt’,Linux则返回‘posix’ os.getcwd() #显示当前目录 os.listdir() #以 ...

  7. python模块之os

    os模块提供了对目录或者文件的新建/删除/查看文件属性,还提供了对文件以及目录的路径操作.比如说:绝对路径,父目录-- os.sep可以取代操作系统特定的路径分隔符.windows下为 "\ ...

  8. python模块之os和os.path模块

    1.os模块os.listdir(dirname) 列出dirname下的目录和文件os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径.os.getenv()和os.pu ...

  9. python模块(os,sys,hashlib,collections)

    列出目录下所有文件 os.listdir('dirname'):列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式返回. 创建文件夹: os.mkdir('文件夹')    创建文件夹 os ...

随机推荐

  1. java利用myeclipse自带三大框架搭建三大框架(Hibernate+Struts2+Spring)过程详解

    搭建过程因人而异,我的搭建过程大致是这样的: 1.创建一个javaweb项目: 2.导入Spring框架,上图: 2.1: 2.2: 2.3: 3.导入struts2框架,上图: 3.1: 3.2: ...

  2. java简单操作redis数据库

    package RedisTest; import redis.clients.jedis.Jedis; public class RedisTest { private static String ...

  3. Zynq7000开发系列-5(OpenCV开发环境搭建:Ubuntu、Zynq)

    操作系统:Ubuntu14.04.5 LTS 64bit OpenCV:OpenCV 3.1.0.opencv_contrib gcc:gcc version 4.8.4 (Ubuntu 4.8.4- ...

  4. UWP 切换语言

    关于UWP切换语言的具体可以看这篇.http://www.cnblogs.com/hupo376787/p/7775291.html 这里我就记录一些自己的. 目前大多数软件用的都是利用文本资源文件来 ...

  5. 【aspnetcore】在asp.net core中配置使用AutoMapper

    网上使用AutoMapper的文章很多,就不多说了.这里主要记录一下怎么在项目中配置和使用. 首先是从NuGet获取AutoMapper. 在Startup.cs文件中注册AutoMapper服务 p ...

  6. python入门之实例-用户登录、注册

    用户密码存储文件db(其中用户和密码之间用$符合隔开): admin$123456 root$sdfk9f24 chy$654321 代码如下: def login(username,password ...

  7. C++ 自定义结构体的Priority Queue

    比较函数return true 意味着排序需要交换. #include <iostream> #include <queue> #include <vector> ...

  8. [在读] javascript权威指南第六版

    耽搁了有大半年没看,记得当时看到5分之2了吧.权威指南是不管读几遍都能觉得有新收获的书^^

  9. 174. 删除链表中倒数第n个节点

    描述 笔记 数据 评测 给定一个链表,删除链表中倒数第n个节点,返回链表的头节点. 注意事项 链表中的节点个数大于等于n 您在真实的面试中是否遇到过这个题? Yes 样例 给出链表1->2-&g ...

  10. SQL SERVER 2008中使用VARBINARY(MAX)进行图像存取的实现方法

          在数据库应用项目开发中,经常会使用一些二进制的图像数据,存储和读取显示图像数据主要采用的是路径链接法和内存流法.路径链接法是将图像文件保存在固定的路径下,数据库中只存储图像文件的路径和名称 ...