首页 > 其他 > 详细

文件操作

时间:2020-07-16 18:20:19      阅读:35      评论:0      收藏:0      [点我收藏+]

打开文件的模式

# r模式只读模式,在这个模式下面不能往文件写内容否则报错
f = open(a.txt, r, encoding=utf8)
print(f.read())
f.close()

# w模式只写模式,在这个模式下面不能读内容否则报错
# 这个模式下面有一点要特别注意,如果用w模式打开一个有内容的文件,文件的内容会被清空。一定要慎重!!!!
f = open(a.txt, w, encoding=utf8)
print(f.write(abc))
f.close()

# a模式追加模式,在这个模式下面不能读取内容否则报错
# 这个模式下面打开文件,不会清空文件内容,写入文件默认在最后添加
f = open(a.txt, a, encoding=utf8)
print(f.write(abc))
f.close()

# ======================= 下面的模式需要跟rwa组合使用 =======================
# b模式
# 注意这个模式下面不能指定encoding,否则报错
# 这个模式是能写入bytes类型的数据,不能写入文本
f = open(a.txt, wb)
f.write(abc.encode(utf8))
f.close()
# 读出的也是bytes类型
f = open(a.txt, rb)
f.read()
f.close()

# t模式(默认模式)
# 这个模式是open的一个默认模式,只能读写字符类型,需要指定encoding
f = open(a.txt, wt)
f.write(abc)
f.close()
# 读出的也是字符类型
f = open(a.txt, rt)
f.read()
f.close()

# +模式
# 这个模式给rwa模式添加他们没有的功能
f = open(a.txt, w+)  # 赋予w读文件的功能
f.close()
f = open(a.txt, a+)  # 赋予a读文件的功能
f.close()
f = open(a.txt, r+)  # 赋予r写文件的功能
f.close()

指针操作

# 获取指针位置
f.tell()
# 移动指针
# seek有三种移动方式0,1,2,其中1和2必须在b模式下进行,但无论哪种模式,都是以bytes为单位移动的
f.seek(3, 0)  # 以文件开头为对照,移动3个bytes
f.seek(3, 1)  # 以指针当前位置为对照,移动3个bytes
f.seek(3, 2)  # 以文件结尾为对照,移动3个bytes

#
# 2. truncate是截断文件
f.truncate(n) # 如果传入n,保留文件起始位置开始到n的数据,其余的删除
f.truncate() # 如果不传n,保留文件起始位置开始到指针所在位置,其余的删除

内置方法

#掌握
f.read() #读取所有内容,光标移动到文件末尾
f.readline() #读取一行内容,光标移动到第二行首部
f.readlines() #读取每一行内容,存放于列表中

f.write(1111\n222\n) #针对文本模式的写,需要自己写换行符
f.write(1111\n222\n.encode(utf-8)) #针对b模式的写,需要自己写换行符
f.writelines([333\n,444\n]) #文件模式
f.writelines([bytes(333\n,encoding=utf-8),444\n.encode(utf-8)]) #b模式

#了解
f.readable() #文件是否可读
f.writable() #文件是否可读
f.closed #文件是否关闭
f.encoding #如果文件打开模式为b,则没有该属性
f.flush() #立刻将文件内容从内存刷到硬盘
f.name

 

  

文件操作

原文:https://www.cnblogs.com/wtil/p/13323746.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!