文件操作

文件操作

什么是文件?

操作系统提供给用户操作复杂硬件(硬盘)的简易的接口

 

为什么操作文件

人或者应用程序需要永久的保存数据

 

如何调用文件(这里调用同目录下的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+

# 能写,能读

# 如果文件不存在那么就会创建

# 它不会将文件清楚

原文地址:https://www.cnblogs.com/pscly/p/11154034.html