Python模块之OS,subprocess
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。
模块的用法
os.path.abspath() :返回当前文件的绝对路径
os.path.split():将路径分割成文件夹和文件名
os.path.exist():判断一个路径是否存在,存在返归True,不存在返回False
os.path.isabs():判断绝对路径和相对路径,判断本则是路径是否是“\”开头
os.path.isfile():判断是否是一个存在的文件夹
os.path.isdir():存在并且是一个文件夹
os.path.join("str"): 以当前平台分割符对路径字符串进行拼接,当存在多个盘符时,默认以最后一个盘符开始进行拼接。
os.path.getsize():获取文件的大小(字节)
os.path.getatime(path):获取最后存取时间
os.path.getmtime(path):获取最后修改时间
规范化路径:
os.path.normcase(path):大写变小写,斜杆变为当前操作系统平台识别斜杠
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的更多相关文章
- python 模块之os.path模块
# -*- coding: cp936 -*- #python 27 #xiaodeng #python 模块之os.path模块 #http://www.cnblogs.com/dkblog/arc ...
- python 模块之-os
python os模块 import os os.getcwd() # python脚本所在工作目录的路径 os.chdir(r'/tmp') # 切换目录到tmp os. ...
- 潭州课堂25班:Ph201805201 python 模块json,os 第六课 (课堂笔记)
json 模块 import json data = { 'name':'aa', 'age':18, 'lis':[1,3,4], 'tupe':(4,5,6), 'None':None } j = ...
- python初步学习-python模块之 os
os os 模块在运维工作中是很常用的一个模块.通过os模块调用系统命令.os模块可以跨平台使用. 在 import os的时候,建议使用import os而非from os import *.这样可 ...
- Python模块之-OS模块
一.os模块概述 Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.(一语中的) 二.常用方法 1.os.name 输出字符串指示正在使用的平台 ...
- Python模块:os
OS模块常用用法: os.name() #判断当前使用的系统环境,windows则返回 ‘nt’,Linux则返回‘posix’ os.getcwd() #显示当前目录 os.listdir() #以 ...
- python模块之os
os模块提供了对目录或者文件的新建/删除/查看文件属性,还提供了对文件以及目录的路径操作.比如说:绝对路径,父目录-- os.sep可以取代操作系统特定的路径分隔符.windows下为 "\ ...
- python模块之os和os.path模块
1.os模块os.listdir(dirname) 列出dirname下的目录和文件os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径.os.getenv()和os.pu ...
- python模块(os,sys,hashlib,collections)
列出目录下所有文件 os.listdir('dirname'):列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式返回. 创建文件夹: os.mkdir('文件夹') 创建文件夹 os ...
随机推荐
- JDBC | 查询表数据行数
两种方法: 1. "select * from userinfo" 利用ResultSet的last和getRow方法来获得ResultSet的总行数,适用于在查询数据的同时统 ...
- canvas常用画法整理
代码Canvas.htm <!DOCTYPE html> <html lang="en"> <head> <title>canvas ...
- JS中的关系操作符与自动转型
很多时候对数据操做时都会遇到数据转换,有的是显示转化,有的是隐式转化,即调用默认的规则进行数据转换,经常会把数据转换的方式搞混,于是就花了点时间做了个小小的总结: 一元操作符(--,++,-,+)作用 ...
- ViewPager的使用总结
这两天公司项目一直需要用到ViewPager来显示各式各样的Banner图,因而再次做了一些总结,不全后续应该还会更新的. 1.ViewPager要想做到一个界面显示多个items 有两种方式 ,一种 ...
- Mysql 事务隔离级别(图文详解)
本文由 SnailClimb 和 BugSpeak 共同完成. 事务隔离级别(图文详解) 什么是事务? 事物的特性(ACID) 并发事务带来的问题 事务隔离级别 实际情况演示 脏读(读未提交) 避免脏 ...
- 移动端meta的使用
伴随着web app的不断火热,移动端可以说是未来的大趋势了,下面是常用的一下meta <!-- 声明文档使用的字符编码 --> <meta charset='utf-8'> ...
- 浅谈Hibernate中的三种数据状态
Hibernate中的三种数据状态:临时.持久.游离 1.临时态(瞬时态) 不存在于session中,也不存在于数据库中的数据,被称为临时态. 数据库中没有数据与之对应,超过作用域会被JVM垃圾回收器 ...
- OPENFIRE 使用Hazelcast插件进行集群
参考资料:http://www.linuxidc.com/Linux/2014-01/94850.htm https://www.igniterealtime.org/projects/openf ...
- 51nod 1526 分配笔名
题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 320 难度:7级算法题. 班里有n个同学.老师为他们选了n个笔名.现在要把这些笔名分配给每一个同学,每一 ...
- codevs 1267 老鼠的旅行 2012年CCC加拿大高中生信息学奥赛
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description You are a mouse that lives in a cage in ...