os,os.path,subprocess,configparser,xml shutil模块

os 表示操作系统

os模块是与操作系统交互的一个接口

os.getcwd()获取当前工作目录,即当前python脚本工作的目录路径

os.chdir(a)改变当前脚本工作目录,相当于shell下cd

os.curdir返回当前目录('.')

os.pardir获取当前父目录字符串名('..')

os.makedirs(a\b)可生成多层递归目录

os.removedirs(s)若目录为空,则删除,并递归到上一级目录,若也为空则删除以此类推

os.makdir(a)生成单级目录

os.rmdir()删除单级空目录,不为空则无法删除报错

os.listdir()列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印

os.remove()删除一个文件

os.rename()重命名文件/目录

os.stat()获取文件/目录信息

os.sep 输出操作系统特定的路径分隔符

os.linesep输出当前平台使用的行终止符

os.pathsep输出用于分割文件路径的字符串

os.name输出字符串指示当前使用平台

os.system运行shell命令直接显示

os.environ获取系统环境变量

os.path.abspath返回path规范化的绝对路径

os.path.split将path分割成目录和文件名元组返回

os.path.dirname返回path的目录,其实就是os.path.split的第一个元素

os.path.basename返回path最后的文件名,如果path以/或\结尾则返回空值

os.path.exists如果path存在返回True不存在返回False

os.path.isabs如果path是绝对路径返回True

os.path.isfile如果path是一个存在的文件,返回true否则False

os.path.isdir如果path是一个存在的目录返回True否则False

os.path.join将多个路径组合后返回,第一个绝对路径之前的参数将被忽略

oa.path.getatime返回path所指向文件或者目录的最后存取时间

os.path.setmtime返回path所指向的文件或者目录最后修改时间

os.path.getsize返回path的大小

os.path.normcase在linux和mac平台上,该函数会原样返回path,在windows平台上会将路径中所有字符转换为小写并将所有斜杠转换为反斜杠

os.path.normpath规范化路径

shutil模块

高级的文件文件夹压缩包处理模块

shutil.copyfileobj()将文件内容拷贝到另一个文件中

shutil.copyfileobj(open('a.txt','r'),open('b.txt','w'))

shutil.copyfile()拷贝文件

shutil.copyfile('1.txt','2.txt')目标文件无需存在

shutil.copymode仅拷贝权限内容组用户均不变目标文件必须存在

shutil.copystat仅拷贝状态的信息,包括mode,bits atime mtime flags目标文件必须存在

shutil.copy拷贝文件和权限

shutil.copy2拷贝文件和状态信息

subprocess翻译为子进程

进程指正在运行的程序

子进程由另一个正在运行程序启动的程序

为什么使用子进程?

需要在当前进程调用另一个进程完成任务时

os.system在执行时,直接将结果输出到控制台

subprocess不仅可以启动子进程,还能与子进程进行数据交互

dir表示要执行的命令

shell表示dir是一个命令

stdout指定输出管道

管道在python中是传输数据的工具,本质是读写同一个文件

p = subprocess.Popen("dir",shell=True,stdout=subprocess.PIPE)
print(p.stdout.read())
上面代码是 启动了一个dir子进程 并将结果输出到指定管道

当需要在python中启动一个子进程,并且将它进行数据交互时就是用subprocess

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

configparser创建一个配置文件解析器

cfg=configparser.ConfigParser()

读取名为test.cfg的配置文件必须指定编码

cfg.read('test.cfg',encoding='utf-8')

获取某个分区下的某个选项 第一个参数分区名 第二个选项名称
username = cfg.get("mysql","username")

以下三个函数是帮你封装了 类型转换
cfg.getfloat()
cfg.getint()
cfg.getboolean()


读取配置信息 两步
1.读取某个配置文件
2.调用get函数

import configparser

修改
cfg = configparser.ConfigParser()
cfg.read("test.cfg",encoding="utf-8")


将mysql分区下的lock改为True
cfg.set("mysql","lock","true")

with open("test.cfg","wt",encoding="UTF-8") as f:
cfg.write(f)

添加新的选项 port 值为3306
cfg = configparser.ConfigParser()
cfg.read("test.cfg",encoding="utf-8")
添加新的分区
cfg.add_section("新分区")
添加新的选项 port 值为3306
 cfg.set("mysql","port","3306")
with open("test.cfg","wt",encoding="UTF-8") as f:
cfg.write(f)

删除
cfg = configparser.ConfigParser()
cfg.read("test.cfg",encoding="utf-8")

删除分区
cfg.remove_section("新分区")
 删除某个分区的选项
cfg.remove_option("mysql","port")

判断是否存在某个分区
print(cfg.has_section("mysql"))
判断是否存在某个选项
print(cfg.has_option("mysql","username"))


with open("test.cfg","wt",encoding="UTF-8") as f:
cfg.write(f)

 

作为配置文件 最常用的操作就是读取 很少会做修改
总结: read读取配置文件
add_section 添加分区
set 如果没有这个选项则添加
remove_section 删除分区
remove_option 删除选项

请使用配置文件记录登录用户名和密码 下次登录时直接读取配置文件
在进行登录前 先判断是否存在用户名和密码在配置文件中
如果有则读取配置文件并登录
如果没有则正常输入用户名和密码 登录成功时将用户名和密码写入配置文件

 

转载于:https://www.cnblogs.com/suncunxu/p/10096872.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值