Python文件读写之r+/w+/a+

读模式r打开不存在的文件会报错、不能写;如不指定模式则默认是r
写模式w打开不存在的文件会,会新建一个文件;打开存在的文件会先清空后覆盖原有文件;不能读
追加模式a打开不存在的文件会,会新建一个文件;不能读

 

读写模式r+能写,打开不存在的文件会报错
写读模式w+能读,但是读不到内容,因为w先把文件内容清空了
追加读模式a+能读,但读不到内容,因为文件指针默认在最后一行,可用seek移动文件指针位置

1. r+读写模式

# r+读写模式
f=open('test.txt','r+')
res=f.write('000\n')
res1=f.read()
print(res1)

# 原test.txt内容如下:
# 123456
# 678
# 789

#print输出读取的内容如下:
# 6
# 678
# 789

#现test.txt内容如下:
# 000
# 6
# 678
# 789

##解释说明:
#1. r+新写入的内容会覆盖原文件中的内容,写入几个字符,则覆盖几个字符
#2. r+会从文件开头开始进行文件读写,所以每次写入时,都会从一开始(第一行)进行
#3. \n换行符相当于两个字符
#4. r+写完后,文件指针会停留在新写入的字符后面,所以在read时,只read新写入字符后面的那些内容
#5. 综上所述,新写入的000\n会覆盖原文件中的前5个字符,且read后显示的内容不包含新写入的内容

 

2. w+写读模式

# w+写模式
f=open('test.txt','w+')
res=f.write('000\n')
res1=f.read()
print(res1)

# 原test.txt内容如下:
# 123456
# 678
# 789

#print输出读取的内容如下:#空,能读,但是读不到内容,因为w+先把文件内容清空了


#现test.txt内容如下:
# 000
# 

##解释说明:
#1. w+会先清空然后覆盖原文件内容
#2. w+会先将文件里的所有内容都清空,所以读不到任何内容

 

3. a+追加读模式

# a+读写模式
f=open('test.txt','a+')
res=f.write('000\n')
res1=f.read()
print(res1)

# 原test.txt内容如下:
# 123456
# 678
# 789

#print输出读取的内容如下:#空,能读,但读不到内容,因为文件指针默认在最后一行,用seek移动文件指针位置



#现test.txt内容如下:
# 123456
# 678
# 78900
#  

##解释说明:
#1. a+因为文件指针默认在最后一行字符后,所以写入新字符时,新写入的字符会显示在最后
#2. a+能读,但因为文件指针默认在最后一行,所以读不到内容,显示空
#3. a+可以用seek()移动文件指针位置进行文件的读取

3-1:a+中seek()的运用:在读取文件时,可指定下标从而实现从第几位开始读取文件内容;

注:只针对读取文件,写文件还是只能从最后开始写

f=open('test.txt','a+')
f.seek(5)  #此处的seek不起作用,因为对写文件不起作用
res=f.write('hh\n')
f.seek(2)  #从下标是2的字符开始读取文件
res1=f.read()
print(res1)

# 原test.txt内容如下:
# 123456
# 678
# 789

#print输出读取的内容如下:
# 3456
# 678
# 789hh
#  

#现test.txt内容如下:
# 123456
# 678
# 789hh
#  

 

转载于:https://www.cnblogs.com/denise1108/p/10018696.html

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python 中,可以使用 `open()` 函数打开文件进行读写操作。`open()` 函数常用的模式参数包括:`r`、`r+`、`w`、`w+`、`a` 和 `a+`。它们的区别如下: - `r`(只读模式):打开文件并读取内容,如果文件不存在则会抛出异常。 - `r+`(读写模式):打开文件以读取和写入内容,如果文件不存在则会抛出异常。 - `w`(只写模式):打开文件以写入内容,如果文件已存在则覆盖原内容,如果文件不存在则创建新文件。 - `w+`(读写模式):打开文件以读取和写入内容,如果文件已存在则覆盖原内容,如果文件不存在则创建新文件。 - `a`(追加模式):打开文件以追加内容,如果文件不存在则创建新文件。 - `a+`(读写模式):打开文件以读取和追加内容,如果文件不存在则创建新文件。 下面是使用这些模式进行文件读写的示例代码: ```python # 写入文件 with open('test.txt', 'w') as f: f.write('Hello, world!') # 读取文件 with open('test.txt', 'r') as f: content = f.read() print(content) # 在文件末尾追加内容 with open('test.txt', 'a') as f: f.write('\nThis is a new line.') # 读取文件 with open('test.txt', 'r') as f: content = f.read() print(content) ``` 上述代码会在当前工作目录下创建一个名为 `test.txt` 的新文件,写入内容 `Hello, world!`,然后再次打开文件读取内容并输出,接着使用追加模式在文件末尾添加一行新内容,最后再次读取文件并输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值