os模块-subprocess 模块- configpaser 模块
一. os 模块
主要用于处理与操作系统相关操作,最常用文件操作
使用场景:当需要操作文件及文件夹(增,删,查,改)
os.getcwd() 获取当前工作目录
os.chdir('dirname') 改变当前工作目录,相当 shell 下的 cd
os.curdir 返回当前目录 (‘ . ’)
os.pardir 获取当前目录的父目录字符串名: (' .. ')
os.makedirs('a\b\c') 生成多层目录
os.removedirs(' ') 若目录为空,则删除
os.mkdir() 生成单级目录。 shell 中 mkdir dirname
os.rmdir() 删除文件夹,必须保证文件夹是空的
os.listdir() 列出文件夹下的所有子文件夹和文件目录,放在列表中
os.remove() 删除文件
for f in os.listdir('a'):
f_path=path +'\\' + f
os.remove(f_path)
# 遍历删除时,listdir 得到的是文件名称,需要手动拼接完整路径
os.rename('old', 'new') 重命名
os.stat(' os模块.py') 获取文件详细信息
os.sep 获取当前操作系统路径分隔符(Linux ‘/’ windows: \)
os.linesep 输出当前平台使用的行终止符 win(' \t\n') linux (\n)
os.name 输出字符串只是当前使用平台 win: 'nt' Linus: 'posix'
os.system('bash command') 运行shell命令,直接显示
os.environ 获取系统环境变量
二. os.path 模块
用于处理路径,将所有与路径相关进行封装(有利于跨平台操作,各平台路径书写方式不同)
os.path.abspath() 返回绝对路径,不管文件是否存在
os.path.split(path) 将目录分割成目录和文件名两部分
os.path.dirname(path) 返回path目录,不包括path
os.path.basename(path) 返回path最后的文件名
os.path.exists(path) 判断path是否存在,返回True False
os.path.isabs(path) 判断是否为绝对路径
os.path.isfile(path) 判断是否是一个存在的文件
os.path.isdir(path) 判断是否为存在的目录
os.path.join(path1,path2) 路径拼接
os.path.getatime(path) 返回最后存取时间
os.path.getmtime(path) 返回最后修改时间
os.path.getsize(path) 返回path 的大小
os.path.normcase(path) 规范路径,所有字符转换为小写,并将所有斜杠转换为饭斜杠。
os.path.normpath(path..) 可以返回上级目录
总结:主要用于处理路径,不关心路径是否存在。通常与os模块一起使用
三. subprocess 模块
进程:一个正在运行的程序
子进程:由另一个正在运行的程序启动的程序(有一个任务需要处理,而自己的程序无法处理,开启另一个程序)
cmd 中: tasklist | findstr cmd ( | 表示管道)
os.system('tasklist') 也可以启动子进程,只能打印在屏幕上,不能拿到结果
使用 subprocess: 不仅可以启动子进程,还能与子进程进行数据交互
# 启动dir 子程序,将结果输出到指定管道
import subprocess
p=subprocess.Popen('dir',shell=True,stdout=subprocess.PIPE) print(p.stdout.read()) # 可以获取得到的结果, stdout: 输出
# 'dir' : dir 命令
# shell=True : 告诉python,dir是命令
# stdout: 指定输出管道
# PIPE管道: 将数据从一个进程通向另一个进程
# 执行: tasklist | findstr.cmd p1=subprocess.Popen('tasklist',shell=True,stdout=subprocess.PIPE)
# 执行tasklist 任务,将结果放在指定管道p1.stdout中
p2=subprocess.Popen('findstr', # 要执行的命令
shell=True, # 第一个参数是否是一个指令
stdin=p1.stdout, # 指定输入管道
stdout=subprocess.PIPE, # 指定输出管道
stderr=subprocess.PIPE) # 错误管道,当程序出错时,可以在错误管道中输出结果
# 执行 findstr命令,传入的数据为p1.stdout中数据,输出数据放在p2.stdout 管道中
print(p2.stdout.read().decode('GBK'))
print(p2.stderr.read().decode('GBK')) 结果: 当命令输错时: FINDSTR: 错误的命令行
总结: os.system : 仅启动了子进程
subprocess: 启动子进程,并进行数据交互
四. configpaser 模块
配置文件解析
配置信息: 数据值不确定, 可以由用户指定
.cfg 为配置文件
配置文件编写格式: 1. section: 分区 ===》 分区名称不能重复
2. option : 选项 ===》同一分区下不能有重复的option
test.cfg 文件格式 [mysql] uname=pack password= [count] a=1
# 取读配置信息两步:
# 第一步:读取某个配置文件
# 第二步:调用get函数
import configparser
# 创建一个解析器
cfg=configparser.ConfigParser()
cfg.read('test.cfg',encoding='utf-8') # 获取分区列表
cfg.sections() # 获取option
uname=cfg.get('mysql','username') # 封装数据转换
cfg.getint()
cfg.getfloat()
cfg.getboolean()
# 修改,增加分区和option import configparser
cfg=configparser.ConfigParser()
cfg.read('test.cfg',encoding='utf-8')
# 增加分区
cfg.add_section('christmas')
# 增加option
cfg.set('mysql','port','')
# 修改option
cfg.set('mysql','uname','egon') with open('test.cfg','wt',encoding='utf-8') as f:
cfg.write(f) #删除分区或option
cfg=configparser.ConfigParser()
cfg.read('test.cfg',encoding='utf-8') cfg.remove_section('christmas')
cfg.remove_option('mysql','uname') #判断是否存在分区或option
cfg.has_option('mysql','password')
cfg.has_section('christmas') with open('test.cfg','wt',encoding='utf-8') as f:
cfg.write(f)
总结: read 取读配置文件
add_section() 添加分区
set 如果没有这个选项则添加
remove_section 删除分区
remove_option 删除选项
has_option() 判断是否有选项
has_section 判断是否有分区
五. shutil 模块
是一个工具包,封装了文件高级操作,功能与os 有些重叠,os只能处理文件是否存在,路径是否正确等,无法直接完成copy等操作
shutil 还提供了压缩和解压缩
复制文件:
import shutil # 复制文件
shutil.copyfile(r'D:\脱产5期内容\shutil模块.py',r'D:\脱产5期内容\shutil模块.py2') #压缩文件
shutil.make_archive(base_name, format, root_dir=None, base_dir=None )
shutil.make_archive('shutil模块',
'zip',
r'D:\脱产5期内容\shutil模块.py',
r'D:\脱产5期内容\压缩文件.py')
# 解压缩
shutil.unpack_archive(filename,extract_dir=None,format=None)
shutil.unpack_archive(r"shutil模块.zip",
r"D:\脱产5期内容\day19\shutil模块\解压的文件夹",
r"zip")
os模块-subprocess 模块- configpaser 模块的更多相关文章
- Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函数 os模块 hashlib模块 platform模块 csv模块
Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函 ...
- os模块,os.path模块,subprocess模块,configparser模块,shutil模块
1.os模块 os表示操作系统该模块主要用来处理与操作系统相关的操作最常用的文件操作打开 读入 写入 删除 复制 重命名 os.getcwd() 获取当前执行文件所在的文件夹路径os.chdir(&q ...
- python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则
python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess ...
- day 5 模块导入、常用模块os shutil sys commands subprocess hashlib json pickle zipfile traceback random datetime
os: os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os. ...
- Python基础篇【第6篇】: Python模块subprocess
subprocess Python中可以执行shell命令的相关模块和函数有: os.system os.spawn* os.popen* --废弃 popen2.* ...
- s14 第5天 时间模块 随机模块 String模块 shutil模块(文件操作) 文件压缩(zipfile和tarfile)shelve模块 XML模块 ConfigParser配置文件操作模块 hashlib散列模块 Subprocess模块(调用shell) logging模块 正则表达式模块 r字符串和转译
时间模块 time datatime time.clock(2.7) time.process_time(3.3) 测量处理器运算时间,不包括sleep时间 time.altzone 返回与UTC时间 ...
- python模块:调用系统命令模块subprocess等
http://blog.csdn.net/pipisorry/article/details/46972171 Python经常被称作"胶水语言",因为它能够轻易地操作其他程序,轻 ...
- subprocess(子进程模块)
subprocess: 子进程模块 一个正在运行的程序叫做进程 一个进程 开启了另一个进程 这个被开启的程序叫做子ka进程 ###########################在cmd中执行#### ...
- 【转】Python模块subprocess
subprocess 早期的Python版本中,我们主要是通过os.system().os.popen().read()等函数.commands模块来执行命令行指令的,从Python 2.4开始官方文 ...
随机推荐
- 获取指定tag的代码
git checkout v1.0.3 再使用ls查看就可以了
- mysql利用navicat导出表结构和表中数据
LZ在网上搜索了要如何导出mysql的表结构和表中数据,发现有的方法不好用 记录一下好用的方式: 用navicat打开DB链接后,点击数据库,右击选择转储SQL文件,然后选择结构和数据: 之后弹出新的 ...
- django序列化 serializers
Django的序列化工具让你可以将Django的模型‘翻译’成其它格式的数据.通常情况下,这种其它格式的数据是基于文本的,并且用于数据交换\传输过程. 一.序列化数据 Django为我们提供了一个强大 ...
- Windows下的Python 3.6.1的下载与安装(适合32bits和64bits)(图文详解)
不多说,直接上干货! 为什么,这么简单的一个python,我还要特意来写一篇博客呢? 是因为留念下,在使用了Anaconda2和Anaconda3的基础上,现在需安装python3.6.0来做数据分析 ...
- linux基础05-管道及IO重定向
(1)I/O重定向:Linux:>: 覆盖输出>>:追加输出 (2)set -C: 禁止对已经存在文件使用覆盖重定向: 强制覆盖输出,则使用 >|set +C: 关闭上述功能 ...
- cocos2dx spine之一 :spine缓存 (c++ & lua)
cocos2dx版本为3.10 1.在使用spine的过程中,发现了一个比较严重的问题:每次创建SkeletonAnimation的时候都会很卡,即使是使用同一个骨骼数据skeletonData. 跟 ...
- postMan用法
增加: 删除: 更改: 查询:
- Jmeter 接口测试知识梳理——应用基础篇
Jmeter 使用也有很长时间了,但是一直没有做一下知识梳理,近期会对公司同事做一下这方面的培训,借此机会,把使用过程中应用到的知识,或是遇到的问题,整理出来,方便大家学习! Jmeter 接口测试知 ...
- 获取解码字符串指定位置的数值 Decoded String at Index
2018-10-04 12:53:06 问题描述: 问题求解: 首先本题给出了问题的规模,从Note中我们可以看到解码后的字符串长度甚至可以达到2^63的长度,这个长度已经远远超过整型数的范围,因此如 ...
- English trip EM2-LP-3A Gifts Teacher:Patrick
课上内容(Lesson) 词汇(Key Word ) Identify vt. 确定:识别:使参与:把…看成一样 objects n. 物体(object的复数):目标 # UFO = ...