Python中文件的读写【一】(txt文件或者普通文本文件)

python中常用打开模式的含义与区别

打开模式含义
r只读文件不存在会报错。文件的指针将会放在文件的开头。这是默认模式。
r+可读可写文件不存在会报错。文件指针将会放在文件的开头。
w只写,文件不存在,会创建新文件。从开头开始编辑,原有内容会被删除
w+可写可读,文件不存在,会创建新文件。从开头开始编辑,原有内容会被删除。由于原有内容被删除,所以读不了具体文件内容。
a追加写入,文件不存在,会创建新文件。文件存在的话,文件指针将会放在文件的结尾。新的内容将会被写入到已有内容之后。
a+追加可写可读,文件不存在,会创建新文件。文件存在的话,文件指针将会放在文件的结尾。如果要读取文件的内容需要调整指针到文件开头。

从上面可以看出,“+”的作用是在原来的基础上,增加读或者写的功能。

r 模式

  • 假设我们的文件名为test.txt,里面的内容为:
Hello world
Python is good

我们可以用两种方法来读取文件的内容

  • 第一种:手动关闭文件的方式
    这种方式需要手动打开、关闭文件,如果运行过程中出现异常,可能会造成文件没有被关闭的问题。
file = open('test.txt', 'r') 
text = file.read()  # 读取文件对象的全部内容
print(text)
file.close() # 关闭文件
'''
# 输出为:
Hello world
Python is good
'''
  • 第二种:with语句上下文管理器的方式
    这种方式会自动关闭文件,出现异常也可以自动关闭文件,使用起来更加安全方便,所以下文的演示代码都是用with语句。
with open('test.txt', 'r') as file:
    print(file.read())
'''
# 输出为:
Hello world
Python is good
'''

r+ 模式

with open('test.txt', 'r+') as file:
    file.write("This is 'r+' mode") # 向文件中写入内容
with open('test.txt', 'r+') as file:
    print(file.read()) # 查看文件内容
'''
# 输出为:
This is 'r+' modeon is good
'''

可以看出来,r+模式在写入的时候,是覆盖写入的方式,把原文件的内容进行覆盖,没有覆盖到的内容就保留下来了。

w 模式

with open('test.txt', 'w') as file:
    file.write("This is 'w' mode")
with open('test.txt', 'r') as file:
    print(file.read())
'''
# 输出为:
This is 'w' mode
'''

可以看到,w模式会把原文件的内容删除掉,然后再写入新的内容,这与r+模式的写入有区别。

w+ 模式

with open('test.txt', 'w+') as file:
    print(file.read())
'''
# 输出为空
'''

这说明,w+模式也会把原文件的内容删掉,虽然可读,但是文件已经没有内容了。

a 模式

with open('test.txt', 'a') as file:
    file.write("\nThis is 'a' mode")
with open('test.txt', 'r') as file:
    print(file.read())
'''
# 输出为:
Hello world
Python is good
This is 'a' mode
'''

可以看出,a模式具有追加写入的功能。

a+ 模式

with open('test.txt', 'a+') as file:
    file.seek(0) # 将文件指针指向文件开头
    print(file.read())
'''
# 输出为:
Hello world
Python is good
'''

a+模式就是在a模式的基础上增加了读取的功能,a/a+模式默认文件指针指向文件的结尾,如果不调整指针的位置,那读取的内容就是空白。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值