Python基础—09-文件操作
2018-09-19 21:00
381 查看
文件操作
目录管理(os)
-
system:执行系统命令
# 清空屏幕 # os.system('cls') # 弹出计算器程序 os.system('calc')
-
name:查看系统名称
[ul] nt:windows内核 - posix:类unix内核
获取环境变量:
# print(os.environ['path']) # print(os.environ.get('path2', 'abc')) # 这里是对上面的封装 # print(os.getenv('path2', 'hello')) print(os.getenv('XXX'))
终端操作:
设置:set XXX=yyy
获取:set XXX
getcwd:获取当前工作目录
print(os.getcwd())
mkdir:创建目录(不能带中间目录)
os.mkdir('hello')
makedirs:创建目录(会自动创建中间目录)
os.makedirs('a/b/c')
rmdir:删除目录(只能删除空目录)
os.rmdir('hello')
rename:重命名(可以是文件或目录)
os.rename(原名称, 新名称)
stat:查看文件信息(也可以是目录)
os.stat(文件名)
相对目录/绝对目录
相对目录:有参考的目录 . 表示当前目录,通过‘./’可以省略 .. 表示上一级目录,上上一级目录这样表示:../../ 绝对目录:windows中以盘符开头,类unix中以'/'开头的目录 目录分隔符: windows:/ 或 \ 类unix:/ 建议:统一使用 / 说明:在文件操作时,相对目录和绝对目录都可以
listdir:查看目录的直接子文件
os.listdir(目录)
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'))
练习:实现目录大小的统计,需要使用递归
文件操作
-
打开文件(open)
[ul] 示例
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)) # 编码:str => bytes s = 'hello'.encode('utf-8') print(s) # 解码:bytes => str b = s.decode('utf-8') print(b)
关闭文件
fp.close()
文件读写
# 判断是否可读 # 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(文件名)
练习:(递归)删除一个目录
相关文章推荐
- Python基础--基本文件操作
- 老齐python-基础7(文件操作、迭代)
- Py修行路 python基础 (七)文件操作 笔记(随时更改添加)
- python基础:python循环、三元运算、字典、文件操作
- Python基础 -- 04 基础语法(文件操作、综合应用)
- python基础-文件目录操作
- Python基础(六) 基础文件操作
- Python基础--基本文件操作
- 【脚本语言系列】关于Python基础知识文件操作,你需要知道的事
- python基础(四)文件操作和集合
- python基础 第一天 (列表操作、字典操作,集合操作,文件操作)
- Python基础-文件操作
- Python基础-文件的基本操作
- python基础-10-文件操作
- Python基础--文件操作和集合
- python基础之文件操作
- 【Python基础】1.1.2 多文件合并操作
- Python学习:IO基础(2):对文件目录的操作
- Python基础学习----文件操作
- 第24讲 python文件的写操作基础