标签:数据 常用 单位 x86 互联网 readline 执行 周杰伦 换行
一,文件操作
在python中打开文件使用open()函数,获取文件句柄,通过操作句柄来进行各种操作.
打开文件的方式有:r,w,a,r+,w+,a+,rb,wb,ab,r+b,w+b,a+b 默认使用的是r(只读)模式.
常用操作:r,w,a,r+
1.只读操作 r
例:
f=open("明星",mode=‘r‘,encoding=‘UTF-8‘)
s=f.read()
f.close()
print(s)==<周杰伦.郭采洁.容祖儿.邓论>
encoding表示编码集.根据文件的实际保存编码进行获取数据.
绝对路径:(1)从磁盘的根目录开始一直到文件名;(2)互联网上的绝对路径.
相对路径:同一个文件下的文件,相对于当前这个程序所在的文件夹而言.如果在同一个文件夹中.则相对路径就是这个文件名.如果在上一层文件夹.则要../("../"表示返回上层目录)
read(n)读取n个字符.需要注意的是.如果再次读取.那么会在当前位置继续去读而不是从头读.
2.只写操作 w
写的时候,如果没有文件,则会创建文件;如果文件存在,则将文件中的原内容删除,再写入新内容.
例:
f=open("明星",mode=‘w‘,encoding=‘UTF-8‘)
s=f.write("昆凌")
f.flush()
f.close() 此时文件中的内容只有‘昆凌".
在w模式下不能进行读"read"操作.
3.追加 a 写入的内容会追加到文件的末尾
例:
f=open("明星",mode=‘a‘,encoding=‘UTF-8‘)
f.write("小龙女")
f.flush()
f.close() 此时文件中的内容是"昆凌小龙女"
4.只读字节 rb 读取出来的数据类型是byte类型,不能选择encoding字符集.
例:
f=open("明星",mode=‘rb‘)
s=f.read()
print(s)
f.close() ==<b‘\xe6\x98\x86\xe5\x87\x8c\xe5\xb0\x8f\xe9\xbe\x99\xe5\xa5\xb3‘>
5.只写字节 wb 可以不指定打开的文件的编码,但在写文件的时候必须将字符串转化成"utf-8"的bytes数据.
例:
f=open("小娃娃",mode=‘wb‘)
f.write("你开心吗?".encode("utf-8"))
f.flush()
f.close() 此时小娃娃文件内容"你开心吗?"
6.读写 r+ 读写模式默认光标在文件开头.必须先读后写
例:
f=open("小娃娃",mode=‘r+‘,encoding="utf-8")
s=f.read()
f.write("邓超") 此时小娃娃内容只有"邓超"
print(s) ==<你开心吗?>
f.flush()
f.close()
在r+模式中,如果读取了内容,不管读取了多少.后面去写都是追加在末尾.如果没有读取,就在开头覆盖.
7.写读 w+ 先将所有内容清空,然后写入,最后读取,但是读取的内容是空的.必需在写完后将光标移动到开头的位置才能读取到内容.
二.相关操作
1.seek()光标 移动到...位置 单位byte
例:
f=open("明星",mode=‘r+‘,encoding="utf-8")
f.read(3)
f.seek(3) --光标移动到第一个字的位置
seek(0)在开头 seek(1)在当前 seek(2)在末尾
2.readable()判断文件是否可读
3.writable()判断文件是否可写
4.readlines()拿到列表元素是每行字和\n 可以执行for循环
5.strip去掉空格 换行 制表符
6.truncate()没有参数时从文件截到光标当前位置 truncate(参数)从文件头截到参数的位置.
三.文件内容修改
with.open打开文件夹不用写close关闭文件夹
例:
import os
with open("菜单",mode="r",encoding="utf-8")as f1,\
open("菜单_副本",mode="w",encoding="utf-8")as f2:
s=f1.read()
ss=s.replace("肉","菜")
f2.write(ss)
os.remove("菜单") #删除原菜单
os.rename("菜单_副本","菜单") #将菜单_副本重命名为菜单
例:
f=open("菜单",mode="r",encoding="utf-8")
for line in f:
print(line)
f.close
梅菜扣肉
两个换行一个是文本中的换行,一个是print()中的换行.
红烧肉
酸辣土豆丝
东坡肉
例:
import os
with open("菜单",mode="r",encoding="utf-8")as f1,\
open("菜单_副本",mode="w",encoding="utf-8")as f2:
for line in f1:
ss=line.replace("肉","菜")
f2.write(ss)
os.remove("菜单")
os.rename("菜单_副本","菜单")
标签:数据 常用 单位 x86 互联网 readline 执行 周杰伦 换行
原文地址:https://www.cnblogs.com/gxj742/p/9295748.html