# -*- coding:utf-8 -*-
f = open('qq', encoding='utf8') # 默认只读打开文件 r encoding:打开文件编码格式
print(f.read()) # 读取全部
print(f.readline()) # 读取一行
print(f.readline(), end="") # end=""不换行
print(f.readline(), end="")
print(f.readable(), end="") # 可读返回True,否则返回Feast
f.close() # 关闭文件 操作完成必须关闭
# writelines(["",""]) 传入一个列表,只能传入字符串,其它类型报错
# *********** b **************************
f = open("qq",'rb') # 二进制打开 字符串---encode-》二进制
print(f.read().decode('utf8')) # decode 转码----》字符串
print(f.read())
f = open("qq",'wb')
f.write(bytes("qqqqq\n",encoding="utf-8")) # bytes转换为二进制,指定输入编码
f.write('小'.encode("utf-8")) #
f.close()
f = open("qq", "rb", encoding="utf-8") # encoding 用utf-8打开文件,如不指定既使用计算默认编码,win是gbk. 打开方式*b
f.seek(3) # seek 从哪个字节开始读取,中文3个字节,
print(f.tell()) # tell 当前处于文件第几个字节处
print(f.read()) # 从当前字节读取,默认从0
f.close()
f = open("qq", 'r+', encoding="utf-8") # 打开方式 w w+ 除外
f.truncate(2) # truncate 截取字节数。文字3个字节,保留从头到指定字节
f = open("qq", 'rb') # 循环列表两种方式
for i in f: #******建议使用这一种
print(i.decode("utf-8")) # 读一行拿一行
for i in f.readlines(): # 这种方式会先把所有放到内存中,然后在一条条拿出
print(i.decode('utf-8')) # 占用内存
# *********** 读取文件最后一条,两种方式,建议使用第二种****
f = open("qq", 'rb')
data = f.readlines()
print(data[-1].decode('utf-8')) # 读取文件最后一行
f = open("qq", 'rb')
for i in f:
offs = -10 # 初始 从后10个字节
while True:
f.seek(offs, 2) # seek 把光标移动到最后
data = f.readlines() # 读取一行,列表格式
if len(data) > 1:
print(data[-1].decode('utf-8')) # 最后一行data[-1]
break
offs *= 2 # len(data) 不大于一行,就扩大一倍
file文件操作 全面解析
猜你喜欢
转载自blog.csdn.net/weixin_42100915/article/details/80198177
今日推荐
周排行