什么是文件?
操作系统提供给用户操作复杂硬件(硬盘)的简易的接口
为什么操作文件
人或者应用程序需要永久的保存数据
如何调用文件(这里调用同目录下的a.txt):
f = open(r'a.txt',mode='r',encoding='utf-8')
f.close() #关闭文件,但如果with的方式就可以不用这个,
with open(r'a.txt','r+',encoding='utf-8') as f: # 这个和f = open(r'a.txt',mode='r',encoding='utf-8') 效果是一样的,只不过这个不需要用.close()去关闭文件,它会自动关闭
其他用法:
with open(r'a.txt',encoding='utf-8') as f1 , open(r'b.txt',encoding='utf-8') as f2:
涉及方法:
f.open() #打开文件,f为任意(下同) f.close() #关闭文件 f.flush() #刷新输出缓存 f.read() #读取文件可再扩号中加入数字,代表读取几个字符(b模式就是读取几个byte), f.readline() #读取文件(一次一行) f.readline() #读取文件,(一次行) f.write() #将写入文件 f.seek(0) #将文件指针回到开头(0)数字代表第几个而不是第几行(r+写入不受控制) .seek(0,2) #移动到末尾,(其中0表示第几个,2代表偏移量) 偏移量(光标所在点): 0(默认,表示文件开头) # 1(代表当前位置) # 只能在b模式下使用 2(代表末尾) # 只能在b模式下使用 f.tell() #获取文件指针的位置 f.truncate() #从文件开头截断到光标位置,后面的都丢弃,如果给了()参数那么就 是从头截断到参数位置 .readable() #判断是否可读 .writable() #判断是否可写
模式(mode)
r,w,a,rb,wb,ab,r+,w+,a+,r+b,w+b,a+b
r:(读)
# 将文本类文件读出来(需要指定encoding='utf-8')
# 如果文件不存在那么就会报错
r+: (读加写)
# 既可以读,也可以写,不会清楚文件
# 如果文件不存在那么就会报错
rb:(读,二进制)
# 将某个文件的二进制读出来(不能指定encoding)
# 如果文件不存在那么就会报错
…
w:(写)
# 只能写不能读
# 将文本写入文件(需要指定encoding='utf-8')
# 如果文件不存在那么就会创建
# 它会将文件清楚
w+:(写加读)
# 既可以读也可以写
# 如果文件不存在那么就会创建
# 它会将文件清楚
…
a:(追加)
# 追加,只能写,不能读
# 如果文件不存在那么就会创建
# 它不会将文件清楚
a+
# 能写,能读
# 如果文件不存在那么就会创建
# 它不会将文件清楚