码迷,mamicode.com
首页 > 其他好文 > 详细

os模块

时间:2018-12-10 21:55:30      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:lines   出错   关心   os模块   删除一个文件   igp   add   配置解析   base   

shelve
open打开文件,类似字典
用于序列化,序列化的中间格式,不能跨平台

sys
跟解释器相关的
sys.argv 获取调用解释器传递的参数
sys.path

os

os operation system
操作系统
该模块处理与操作系统相关的操作
最常用的是文件操作
打开,读取,写入,删除,复制,重命名
os.getcwd()获取当前工作目录,当前执行文件所在文件夹路径
os.chdir 改变当前脚本工作目录
os.makedirs可创建多层目录
创建多级目录,可以自动创建中间的目录,
os.makedirs("a/b/c")已存在报错
创建单个文件夹,会把c1,a1当做已存在路径
os.mkdir("c1/a1/a")
os.rmdir("a")必须保证文件夹为空
os.removedirs("c")c中为空,则上层为空的话一并删除
os.remove()删除一个文件
os.sep获取当前系统的路径分隔符
os.linesep获取当前系统的换行符
os.name获取当前操作系统
os.system执行系统命令
os.envion操作系统环境变量
什么时候使用os
当需要操作文件及文件夹的时候
重点放在对文件的增删改查


os.path
path 翻译为路径
该模块用于处理路径
之所以有这个模块,是因为python是跨平台的,各平台的路径书写方式不同,所以将所有与路径相关都进行了封装,使用了path后,你的程序就是夸平台的,不会因为路径而产生错误
os.path.abspath()返回绝对路径
文件不存在也会拼接
把当前执行文件所在文件夹与你给的参数进行拼接
os.path.split
将路径分隔为文件夹和文件名
实际就是将最后一部分切割
os.path.dirname
返回上一级文件夹
os.path.basename
返回文件名称
os.path.exists()
如果path存在返回True,不存在返回False
os.path.isabs
是否为绝对路径
os.path.isfile(path)
是否是文件
os.path.isdir()
是否是文件夹
os.path.join
拼接
如果有多个盘符,取最近的那一个
os.path.getsize
获取文件大小
os.path.normcase
左右斜杠共存时会按照操作系统统一
os.path.normpath
实现..的功能
总结:主要处理路径,不会关心路径是否存在,只是做拼接,剪切,转换等等操作
通常是与os一起使用
优点:用它处理的路径是可以跨平台的
subprocess
子进程,进程就是一个正在运行的程序
tasklist | findstr cmd
子进程是由另一个正在运行的程序启动的程序,例如qq聊天,点击了一下链接,打开了浏览器,那么浏览器就称之为qq的子进程
为什么使用子进程
当我们有一个任务需要处理,而自己的程序无法处理,所以需要开启另一个程序
在python想要获取所有的进程信息
os.system在执行系统指令时也可以命令操作系统启动某个程序
0 正常执行
os.system在执行时直接把结果输出到控制台,这并不是我们想要的结果
subprocess不仅可以启动子进程,还能与子进程进行数据交互
import subprocess
#dir 表示要执行的命令
#shell 表示dir是一个命令
#stdout 指定输出管道
#管道相当于生活中的水管,水可以通过管道从一个地方流到另一个地方,在程序中,数据相当于水,管道的作用,就从一个进程中把数据传输到另一个进程里,本质上是读写同一个文件
p = subprocess.Popen("dir",shell = True ,stdout = subprocess.PIPE)
print(p.stdout.read())
p1 = suprocess.Popen("tasklist",shell= True,stdout = subprocess.PIPE)
p2 = subprocess.Popen("findstr cmd",shell = True, stdin = p1.stdout, stdout = subprocess.PIPE)
在python中启动一个子进程,并且与它进行数据交互时就使用subprocess,如果不需要数据交互,os.system
stderr = subprocess.PIPE,当进程出错时,存储错误信息
configparser
配置解析,解析配置文件的
1.数据的值不是固定的
2.可以由用户来指定的
section 标题
option 选项
[mysql]#section
username = jack#option
password = 123
默认都是字符串
注意:分区名称不能重复
    同一个分区下不能有重复option
import configparser
创建一个配置文件解析器
cfg = configpatser.ConfigParser()
读取名为test.cfg的文件
cfg.read("test.cfg",encoding = "utf8")
读取分区:
cfg.sections()#存为列表
获取某个分区下的某个选项,第一个参数分区名,第二个选项名
password = cfg.getint("mysql","password")
cfg.getboolean
cfg.getfloat
读取配置信息分两步:
1.读取某个配置文件
2.调用get函数
configparser增加修改删除
import configparser
cfg = configparser.ConfigParser
cfg.read("test.cfg",encoding="utf8")
cfg.set("mysql","lock","True")
with open("test.cfg","wt",encoding = "utf8")as f:
    cfg.write(f)    
cfg.add_section("dango")
cfg.remove_section("dango")
cfg.remove_option("mysql","lock")
cfg.has_section
cfg.has_option
import shutil
shutil 模块是一个工具包,封装了文件的高级操作,让你操作起来更方便
提供了压缩与解压缩
#压缩文件,支持的格式zip,tar
shutil.make_archive("待压缩文件名","格式","文件存哪")
#解压
shutil.unpack_archive
("待解压文件”,“格式","解压后放哪")

os模块

标签:lines   出错   关心   os模块   删除一个文件   igp   add   配置解析   base   

原文地址:https://www.cnblogs.com/robert-zhou/p/10099141.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!