day 009总结
发布时间:2020-12-20 10:41:17 所属栏目:Python 来源:网络整理
导读:文件处理 什么是文件处理 修改存储的信息 什么是文件 操作系统提供的虚拟概念,存储信息(用二进制存储信息) 操作文件的流程 1.打开文件 f=open(r'D:上海python12期视频python12期视频day 09test.py','w',encoding='utf-8') 2.修改/读取文件 f.write(''
文件处理什么是文件处理修改存储的信息 什么是文件操作系统提供的虚拟概念,存储信息(用二进制存储信息) 操作文件的流程1.打开文件 f=open(r'D:上海python12期视频python12期视频day 09test.py','w',encoding='utf-8') 2.修改/读取文件 f.write(''' 孩儿立志出湘关,学不成名誓不还 埋骨何须桑之地,人生无处不青山 ''') 3.保存文件 f.flush()#快速保存,可以不使用 4.关闭文件:python是通过操作系统操作文件 f.close()#告诉操作系统关闭文件 文件的三种打开模式读取:rt read_text 读取文本内容 只读f=open(r'D:上海python12期视频python12期视频day 09test.py','rt',encoding='utf-8') data=f.read()#读取所有文本内容 print(data) print(f.readable())#判断是否可读 print(f.writeable())#判断是否可写 仅作了解 print(f.readline())#一行一行读取 print(f.readlines())#读取所有行放入列表 循环读出文本内容 for i in f.read():#循环出一个个字符 print(i) for i in f: print(i)#循环出一行行,每行末尾默认有一个换行 wt: 清空写入,不可读f.write('abc') 仅作了解 f.writelines(['asd','dgg','werf'])#自动拼接列表元素,一行写入 at: 追加写入f=open(r'D:上海python12期视频python12期视频day 09test.py',encoding='utf-8') f.writeable('中') 打开文件的两种方式t-->文本 b-->二进制模这两个东西不单独使用,一般与r/w/a联用,不需要encoding b模式一般用于图片/音频/视频的保存 绝对路径和相对路径文件的路径:文件在硬盘的地址 绝对路径从盘符开始 D:上海python12期视频python12期视频day 09test.py 相对路径执行文件(当前运行的文件)的文件夹下的文件名,执行文件和打开文件属于同一文件夹下 未来尽量使用相对路径 f=open('test.py','r',encoding='utf-8') print(f.read()) with管理文件上下文with提供一个自动关闭文件(结束了操作系统的占用) with open('test.py',encoding='utf-8') as f: #在这个缩进下不会关闭文件,在这个缩进下对文件操作 data=f.read()#data放在python的内存中 print(data)#关闭文件(操作系统),没有关闭Python内存中的文件 print(f)#只涉及python print(f.read())#涉及操作系统,报错 文件的高级应用可写可读 r+ with open('test.py','r+',encoding='utf-8') as fr: print(fr.readable()) print(fr.writeable()) fr.write('高级')#光标在文件头部,覆盖后面的字符 可写可读 w+和w没有任何区别 with open('test.py','w+',encoding='utf-8') as fr: print(fr.readable()) print(fr.writeable()) 可读可写 a+ a模式默认光标在尾部 with open('test.py','a+',encoding='utf-8') as fr: print(fr.readable()) print(fr.writeable()) 综上:如果你真的有即可读有可写的需求,用两种不同的模式打开文件 光标的高级应用(移动光标)八个进制位为一个字节,3个8进制位组成一个字符(针对中文,英文是一个字节一个字符) 下三种移动光标的位置(以字节为单位) seekwith open('test.py','rb') as fr: fr.seek(5) # 移动了3个字节,一个中文,默认从开头开始 print(fr.read()) print(fr.read().decode('utf8')) whence规定只有0,1,2 三种模式 # 0相当于文件头开始;1相当于当前文件所在位置;2相当于文件末尾fr.seek(3,0) #0从开头 print(fr.read().decode('utf8')) fr.seek(3,1) print(fr.read().decode('utf8')) fr.seek(0,2) print(fr.read()) tell : 告诉你当前所在位置with open('test.py','rb') as fr: fr.seek(3,0) print(fr.tell()) truncate: 截断with open('test.py','ab') as fa: fa.truncate(2) 移动光标(以字符为单位)readwith open('test.py',encoding='utf8') as fr: print(fr.read(3)) # n表示n个字符,不加默认读取所有 # 中文和英文都属于一个字符 文件的修改文件没有修改一说,只有覆盖 缓存文件的原理:同时打开多个文件 import os with open('test.py',encoding='utf-8') as fr,open('test_swap.py',encoding='utf-8') as fw: data=fr.read() data=data.replace('sb','傻逼') fw.write(data) os.remove('test.py') os.rename('test_swap.py','test.py') 如果文件过大 import os with open('test.py',encoding='utf-8') as fw: for i in fr: s='傻逼' fw.write('sb',s) fw.flush#保存 os.remove('test.py') os.rename('test_swap.py','test.py') (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |