文件访问方式 a r w b +

Zss 发表于:
文件打开的几种访问模式
访问模式 说明
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

文件读写的3中模式

# 1、w 写模式,它是不能读的,如果用w模式打开一个已经存在的文件,会清空以前的文件内容,重新写
#    w+ 是读写内容,只要沾上w,肯定会清空原来的文件
# 2、r 读模式,只能读,不能写,而且文件必须存在
#    r+ 是读写模式,只要沾上r,文件必须存在
# 3、a 追加模式,也能写,在文件的末尾添加内容
# 4、rb+、wb+、ab+,这种是二进制模式打开或者读取,一些音乐文件
1、循环读取文件中的每一行内容:
   demo1.py
1 file = open('test1.txt','r+')# 打开test1.txt 文件
2 for line in file: # 遍历file文件
3     print('line里面存放的是:',line) # 循环打印文件中每一行内容
4     print(type(line)) # <class 'str'> 类型是字符串
5 file.close()# 关闭文件
用with的方式打开文件,不用担心使用完文件后忘记关闭,它会自动将文件关闭
1 with open('test1.txt','r+') as file:
2     for line in file:
3         print('line里面存放的是:',line) # 循环打印文件中每一行内容
4         print(type(line)) # <class 'str'> 类型是字符串
3、向文件中写入内容
1 with open('users','a+') as fw: # 打开文件
2     fw.write('写入文件内容')
4、用函数的方式读取文件
 1 def read_file(filename):
 2     '''
 3     用来读取文件内容
 4     :param filename: 文件名
 5     '''
 6     with open(filename,'a+') as fr:
 7         fr.seek(0) # 移动文件指针
 8         content = fr.read() # content 类型是字符串
 9         print('content:',content)
10 read_file('users') # 调用函数
5、用函数的方式写文件
 1 def write_file(filename,content):
 2     '''
 3     用来读取文件内容的
 4     :param filename: 文件名
 5     '''
 6     with open(filename,'a+') as fw:
 7         fw.seek(0) # 移动文件指针
 8         fw.truncate() # 清空文件内容
 9         fw.write(str(content))
10 write_file('a','hello world') # 调用函数

1.r只读,r+读写,不创建

2.w新建只写,w+新建读写,二者都会将文件内容清零(以w方式打开,不能读出。w+可读写)

3.w+与r+区别:r+:可读可写,若文件不存在,报错;w+: 可读可写,若文件不存在,创建

4.r+与a+区别:r+进行了覆盖写

fd = open("1.txt",'w+')  
fd.write('123')  
fd = open("1.txt",'r+')  
fd.write('456')  
fd = open("1.txt",'a+')  
fd.write('789')

结果:456789