python-文件的读写

python-文件的读写

一、Python 文件读写简述
二、使用 open() 打开文件
三、使用 read()、readline()、readlines() 读取数据
四、使用 write()、writelines() 写入文件
五、先写入再读取

一、简述

Python 在文件读写操作中,会使用「内置函数」。

内置函数,包括 open()、read()、readline()、readlines()、write()、writelines()、close() 等方法。

在使用「内置函数」的时候,思路基本上是:
1、打开文件
2、开始「读」或者「写」的操作
3、关闭文件

二、使用 open() 打开文件

1 def open_method():
2     file = open("test.text", 'r')  # open()方法中文件的位置路径,如果是在同级目录下,写文件名称即可;
3     print(file.read())  # 「读」的操作
4     file.close()    # 关闭文件
5 
6 
7 if __name__ == '__main__':
8     open_method()

Python 文件的打开模式,有如下几种,且可以组合使用:

 覆盖写入和清空写入的区别:

例如:

原来文件内容是:乱花渐欲迷人眼,浅草才能没马蹄   ;写入的内容是:离离原上草,一岁一枯荣

覆盖写入:现在有多少内容就覆盖原来多少内容;       

eg: 修后读出的文件内容就是:离离原上草,一岁一枯荣能没马蹄

清空写入:之前的内容会全部清空;                         

eg: 修后读出的文件内容就是:离离原上草,一岁一枯荣

三、使用 read()、readline()、readlines() 读取数据

1、read()方法

适用场景:当文件很大的时候,单纯使用 read() 方法就很难一次性读入内存中;

 1 def read_operate():
 2     file = open("test.text", 'r')  # 打开文件、只读
 3 
 4     file.read()  # read()方法读取文件全部内容
 5 
 6     file.close()  # 关闭文件
 7 
 8 
 9 if __name__ == '__main__':
10     readline_operate()

2、readline()方法

 1 def readline_operate():
 2     file = open("test.text", 'r')  # 打开文件、只读
 3 
 4     line = file.readline()  # readline() 读取一行信息
 5     print(line)
 6 
 7     file.close()  # 关闭文件
 8 
 9 
10 if __name__ == '__main__':
11     readline_operate()

3、readlines()方法

使用场景:读取的数据量比较大时

 1 def readlines_operate():
 2     file = open("test.text", 'r')  # 打开文件、只读
 3 
 4     lines = file.readlines()  # readlines() 读取全部信息
 5     # for 循环 一次读取每一行的内容
 6     for line in lines:
 7         print(line, end='')  # end=''  ,关闭默认换行
 8         # print(line)  # 不加 end='',打印出的每一行内容 默认自动包含换行
 9 
10     file.close()  # 关闭文件
11 
12 
13 if __name__ == '__main__':
14     readlines_operate()

执行的结果如下:

 注意:

读写文件的时候,经常会出现一些 IOError 错误异常,建议写在 try…finally… 异常捕获块中,养成良好的编码习惯。

比如,我们经常执行到最后,会忘记关闭文件,这就很可能会带来很多潜在的问题,可以在 finally 中,也就是程序最后会执行的部分,去关闭我们已打开的文件。

例如:

 1 def file_exception_operate():
 2     try:
 3         file = open("test.text", 'r')  # 打开文件、只读
 4 
 5         lines = file.readlines()  # readlines() 读取全部信息
 6         # for 循环 一次读取每一行的内容
 7         for line in lines:
 8             print(line, end='')  # 依次打印输出每一行数据
 9             
10     finally:
11         print('文件出问题了')
12         file.close()   # 关闭文件
13 
14 
15 if __name__ == '__main__':
16     readlines_operate()

四、使用 write()、writelines() 写入文件

 1、write()方法

 1 def write_operate():
 2     # 写入的内容
 3     data = '枯藤老树昏鸦、小桥流水人家、古道西风瘦马;夕阳西下、断肠人在天涯。'
 4 
 5     # 写入文件
 6     with open('write_file.txt', 'r+') as file:
 7         file.write(data)  # 写入一行新数据
 8 
 9 
10 if __name__ == '__main__':
11     write_operate()

2、writelines()方法

 1 def writelines_operate():
 2     # 创建一个列表
 3     txtlist = ['枯藤老树昏鸦\n', '小桥流水人家\n', '古道西风瘦马\n', '夕阳西下\n', '断肠人在天涯\n']
 4 
 5     # 写入文件
 6     with open('write_file.txt', 'r+') as file:
 7         file.writelines(txtlist)
 8 
 9 
10 if __name__ == '__main__':
11     write_operate()

五、先写入再读取

 案例如下:

 1 def write_read_operate():
 2     # 写入的内容
 3     data = '枯藤老树昏鸦、小桥流水人家、古道西风瘦马;夕阳西下、断肠人在天涯。'
 4 
 5     # 写入文件
 6     file = open('write_file.txt', 'r+')
 7     file.write(data)  # 写入一行新数据
 8 
 9     # 读取文件
10     # 写入后的文件,光标会停留在最末尾;读取文件时,会从光标所在位置开始读取;不做任何操作直接读取会读不到内容
11     # 此时调用seek(0)方法,可将光标调至文件最开始的位置,此时读取可读到全部内容。
12     file.seek(0)
13     print(file.read())
14     file.close()
15 
16 
17 if __name__ == '__main__':
18     write_read_operate()

本文内容参考来源:https://blog.csdn.net/qq_41340258/article/details/124148415 

posted @ 2023-05-25 17:24  一直在寻找的路上  阅读(90)  评论(0编辑  收藏  举报