python11.文件

文件的基本操作:
黑屏、闪退 大概率是因为内存溢出,内存条暂时使用的内存不足,内存是临时存储,硬盘中可持久存储
内存条作为cpu和ssd硬盘的媒介速度中等

用python操作文件
相对路径:
在当前路径即可访问无须再输入路径名,输入文件名即可
绝对路径:
不在同一路径(相同路径下的脚本)下访问的,可以加完整的路径名,而且要加r取消字符转义,从C盘开始

文件打开模式:
括号中加文件名,读写模式(‘r’,‘a’等)
文件存在,但文件无内容会打印出空行
这里的文件指针指的是光标

读取/写入文件:
指向名.模式()
readline()读一行,多几个可以多读几行
readlines()把多行的内容返回成列表的元素,每个元素后面还带有\n表示换行
writelines()写入多行每行间加\n(简洁的方法:用一个变量赋值多行内容不用直接输入括号中,加· · ·,表示换行 的意思)
flush()刷新,主动保存的意思
time.sleep(10)表示执行到这一步要停10秒钟再开始往下执行
tell()用数字表示光标的位置,\n隐藏起来了也算两个数字的位置
seek()加数字可以移动光标

IO流:(输入输出的意思)没有存到真实的文件中,只是暂时存在的假文件,所以调用close()方法时假文件不保存而是会丢失
使用前要用到模块,import io
xx=io.StringIO()创建字符流(创建二进制流,把String改成Bytes就行了)
xx.write()写入
print(xx.getvalue())读取

上下文操作(上文,打开操作。下文,关闭操作)
with open()as 变量名:不用再写入close()了,会自动执行,图片是二进制文件所以打开模式后要加个b,如’rb‘为二进制读取模式
这里file.cloesd查看文件是否关闭
上下文管理的方式__enter__和__exit__(不用在with中只带获取资源和释放资源,用在with可以执行其打印的内容,exit的内容始终放在最后输出)
这里有一个隐藏的类表示open()来用enter和exit的方法,来执行打开和关闭,再打印变量即可操作(即用with就会调用上面两个魔法方法)
with的类可以实例化后再接入也可以使用

文件访问编码:
一般访问文件的括号中模式后面还隐藏着encoding=none所以没有编码就无须解码、
1.比如把中文写入打印中,需要在里面写入encoding=‘utf-8’才不会出现乱码,2.中文写入文件中,查看文件内容,输入编码不会出现乱码

os操作目录及文件:
先导入模块import os(导入扩展包的操作)
print(os.getcwd())查看的是绝对路径
os.listdir()返回目录所有内容成列表的元素,括号中可以加入绝对路径来准确定位,但前面要加r
os.chdir()改变当前路径,不用加print
mkdir,创建文件夹
rmdir, 删除文件夹(目录),只能删空的文件夹,不能删文件
remove,删除文件,不能删除文件夹
os.system(),自动识别系统并使用,调用系统的命令,在哪个系统终端用就识别出哪个系统,powershell中输入ls执行linux子系统可以但是在cmd中不行
os.rename(旧名,新名)
os路径模块:
os.path.join(路径,路径)路径拼接
os.path.basename()打印时要传入参数,返回短路径(最后的路径)即所在的文件夹

猜你喜欢

转载自blog.csdn.net/qwe863226687/article/details/113969083