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