1,目录管理 os
os 模块提供了非常丰富的方法用来处理文件和目录,常用的方法如下表所示:
- os.system('cls') 清空屏幕
- os.system('calc') 弹出计算器程序
- os.name 查看当前操作系统,返回nt:表示windows;posix:表示类unix
- print(os.environ['path']) 获取系统环境变量
- os.getcwd() 获取当前工作目录
- os.mkdir('hello') 创建目录(不能带中间目录)只能创建一级目录
- os.makedirs('a/b/c') 创建目录(会自动创建中间目录)
- os.rmdir('hello') 删除目录(只能删除空目录)
- os.rename(原名称, 新名称) 重命名(可以是文件或目录)
- os.stat(文件名) 查看文件信息(也可以是目录)
- os.listdir(目录) 查看目录的直接子文件
2,相对目录/绝对目录
相对目录:有参考的目录
. 表示当前目录,通常‘./’可以省略
.. 表示上一级目录,上上一级目录这样表示:../../
绝对目录:windows中以盘符开头,类unix中以'/'开头的目录
(UNIX操作系统(尤尼斯),是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统)
目录分隔符:
windows:/ 或 \
类unix:/
建议:统一使用 /
说明:在文件操作时,相对目录和绝对目录都可以
3,path 路径
from os import path
# 目录拼接
# print(path.join('abc/def', 'hello.py'))
# 提取目录
# print(path.dirname('abc/def/hello.py'))
# 提取文件名
# print(path.basename('abc/def/hello.py'))
# 切割目录与文件名
# print(path.split('abc/def/hello.py'))
# dir, name = path.split('abc/def/hello.py')
# print(dir, name)
# 切割文件名与后缀
# name, ext = path.splitext('hello.py')
# print(name, ext)
# 判断文件是否存在(也可以判断目录)
# print(path.exists('hello.py'))
# print(path.exists('aa'))
# 判断是否是目录文件
# print(path.isdir('hello.py'))
# print(path.isdir('aa'))
# 判断是否是普通文件
# print(path.isfile('hello.py'))
# print(path.isfile('aa'))
# 获取文件大小,仅限于普通文件
print(path.getsize('01-os.py'))
# 不可以是目录(大小始终为0)
print(path.getsize('aa'))
4,文件操作
- 打开文件(open) fp = open('00-test.txt', 'r')
- 参数:
参数(file):操作的文件名
参数(mode):打开方式
参数(encoding):指定编码方式,通常不用指定,系统会自动识别
- 打开方式:
r:只读方式,文件不存在会报错
w:只写方式,文件不存在会创建,文件存在删除后再创建
a:追加方式,文件不存在会创建,文件存在直接打开(不会清空),只能向最后追加内容
r+:在r方式上添加写的功能
w+:在w方式上添加读的功能
a+:在a方式上添加读的功能
在上面模式上添加一个字符b,表示二进制方式打开:rb、wb、ab、rb+、wb+、ab+
说明:没有b的方式文件读写都是str类型,带b的方式文件读写都是bytes
- 编码方式:
ASCII:美国信息交换标准代码
ansi:扩展的ASCII
gb2312:中国的ansi
gbk:扩充的gb2312
unicode:万国码,将全部国家的字符全部包含进去进行统一编码
utf-8:可变长度的unicode实现方案,而且对中文支持友好
- bytes字节类型:
s = b'hello'
print(s)
print(type(s))
- 文件读写
# 判断是否可读
# print(fp.readable())
# 读取指定长度内容
# ret = fp.read(3)
# 一次读取一行
# print(fp.readline())
# 读取所有内容,返回一个列表,一行一个元素
# lines = fp.readlines()
# 判断是否能够进行写操作
# print(fp.writable())
# fp.write('world')
# fp.write(b'gogogo')
- 文件指针
# 获取文件指针的位置
print(fp.tell())
# 设置指针偏移
# 参数1:偏移量
# 参数2:参考位置,0表示开头,1表示当前,2表示末尾
# 带b的方式打开,设置偏移没有问题
# 不带b的方式打开,设置偏移会报错
fp.seek(-5, 1)
- 文件删除
os.remove(文件名)