一,打开/关闭文件
-
打开文件,打开哪一个文件?打开干嘛?
传入两个参数,第一个打开文件,第二个打开干什么?
— r 只读 :只允许看,不允许写
— w 只写 :只能写不能看,用这模式打开文件,会先把文件内容清空
— a 追加 :追加在文本末尾,和列表的append方法很像
— b 二进制模式
— + 区别: w+ 表示清空写可写 r+表示可读可写 a+表示可读可追加
1,只读 r
上面所做的只是打开一个文件,并没有读取这个文件!!
—A. read() 原模原样读取文件的内容(和readlines有很大区别!)
f = open(r'test2.txt', 'r') # 打开文件,模式为只读 print(f.read()) # 读取了文件里面的内容 f.close() # 关闭文件
2,可读可写 w+
—A.write() 写入文件内容 print返回的是输入的字符串的字数
—A.writelines([ 元素]) 写入的每一个元素就是每一行
—文件指针:一个文件写入内容后没关闭,文件指针会在文件的末尾,所以在文件没有关闭前读取文件的内容不会读到任何东西!
—A.tell() 获取文件指针光标位置 —A.seek(位置) 移动光标在文件里面的位置
windows系统在换行的时候自带一个换行符号!所以换了3行多三个字符 —A.fiush() 保存文件,相当于ctrl+s
—A.readline() 读取第一行的内容(不常用)
—A.readlines() 读取文本内容,把每行内容以列表的形式返回
3,可追加可读 a+
4,b :可以用来写入图片数据!!
传入图片:把数据准备好,然后以二进制类型写入到一个文件,文件应该是为一个图片类型
(w a)若打开文件时没有这个文件,pycharm会创建这个文件
二,StringIO与BytesIO类型(假文件速度很快很快)
能够存入数据,读出数据,暂时保留数据------>创建内存假文件(内存读取速度比文件读取速度快很多很多)
1,StringIO
2,BytesIO
三,上下文管理 with as
1,open文件以后,必须close文件,那有没有方法能自动关闭文件?
嵌套写法
也可以这样写
四,文件访问编码错误
编码错误:就是你写入一个文件,和读取一个文件所用的编码方式不一样,会发生错误!!!!
五,os模块的目录及文件操作![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/9f5746c267dc45eb40503c2d9e036734.png)
绝对路径:浙江省\杭州市\滨江区\立志园\门牌号476
相对路径:…/门牌号476
- os . getcwd() 获取当前文件的绝对路径
- os . listdir(r ‘绝对路径/相对路径’ ) 获取当前文件路径下的所有文件
- os . path . relpath(r ‘绝对路径’) 把绝对路径转换为相对路径
- os . chdir(r ‘绝对路径’) 跳转到当前目录
- os . rmdir (r ‘绝对路径’) 删除该目录,必须是空目录
- shutil模块 shutil . rmtree(r ‘绝对路径’) 删除有内容的目录
- 掌握:os . system(‘字符串命令’) 能把linux里面的命令进行转换使用
os里面的path模块