Python中文件的读取、写入

1. 文件的读取

程序能够读取文件,便相当于程序有了自己的眼睛。用Python读取文件的第一步操作,是需要用其内置的open()函数打开目标文件。open()函数的常见形式如图1所示:

 图1 open()函数参数示意图

1.1 文件的读取

1.1.1 read方法——返回全部文件内容的字符串
# read方法 读取全部文件
f = open("./data.txt", "r", encoding="utf-8")   # 相对路径
content = f.read()
print(content)
f.close()                                       # 读取完关闭文件,释放资源
 1.1.2 readline方法————返回一行文件内容的字符串

readline方法,每次运行只会读取一行的内容,下次调用就读下一行,它会根据换行符来判断什么时候算本行结尾,而且换行符也会被当成读到的内容的一部分。一般会用While循环语句,判断只要返回的不是空字符串就继续读下一行,否则就退出循环

# readline方法,逐行读取
f = open("./data.txt", "r", encoding="utf-8")
line = f.readline()                             # 读取第一行
while line != "":                               # 判断当前行是否为空
    print(line)                                 # 不为空则打印当前行
    line=f.readline()                           # 读取下一行
  1.1.3 readlines方法——返回全部文件内容组成的列表

readlines会读取全部文件内容,并返回由每行组成的字符串列表,所以它一般回合for循环结合使用,先调用readlines()把所有行读出来,然后一行一行循环列表里的所有内容,

# readline方法,逐行读取
f = open("./data.txt", "r", encoding="utf-8")
line = f.readline()                             # 读取第一行
while line != "":                               # 判断当前行是否为空
    print(line)                                 # 不为空则打印当前行
    line=f.readline()                           # 读取下一行

1.2 文件的关闭

1.2.1 close()方法

读取完文件后,就要及时关闭文件。文件对象有一个叫close()的方法,调用后该文件对象就会释放系统资源。

f = open("./data.txt")  
print(f.read())
f.close()
1.2.2 with关键词

但有些时候我们很容易忘记调用Close,另外一种方法是用with关键词。with后面跟上open()函数的调用,然后as,后面跟上文件对象的命名。执行完毕后,文件就会被自动关闭。

with open("./data.txt", "r", encoding="utf-8") in f:
print(f.read())

2. 文件的写入

2.1 "w"写入模式

写文件与读文件有很多相似之处,都需要打开文件,并在操作完成后关闭文件。所以还是可以用熟悉的with open as,此时需要将读取模式"r"改为写入模式"w"。

with open("./poem.txt", "w", encoding="utf-8") as f:
    f.write("我欲乘风归去,\n又恐琼楼玉宇,\n高处不胜寒。")   # \n为换行符
# 运行结果
我欲乘风归去,
又恐琼楼玉宇,
高处不胜寒。

注意:"w"模式下,若原本没有poem.txt的存储路径,系统会帮你创建,但如果存在该文件并且有内容,系统会自动清除原本的所有内容。因此需要谨慎使用。

2.2 "a"附加模式

如果你不想删除原有内容,又想增加新内容,这时候需要使用附加模式"a"。

with open("./poem.txt", "w", encoding="utf-8") as f:
    f.write("我欲乘风归去,\n又恐琼楼玉宇,\n高处不胜寒。")

with open("./poem.txt", "a", encoding="utf-8") as f:
    f.write("\n起舞弄清影,\n何似在人间")
# 运行结果
我欲乘风归去,
又恐琼楼玉宇,
高处不胜寒。
起舞弄清影,
何似在人间

 2.3 "r+"附加模式

还有个需要注意的点,无论是"w"还是"a"模式,都无法直接去读文件里原本的内容,此时,选用"r+"模式,就可以同时支持读写文件了。

with open("./poem.txt", "w", encoding="utf-8") as f:
    print(f.read())
    f.write("hello")

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值