Python笔记——打开、读取、写入文件

一、打开文件

  • 开一个文件用open()方法,返回一个文件对象,它是可迭代的。
  • 一般情况下,我们使用open()方法,只需要传入文件名打开方式即可。
  • 如果打开的文件编码方式不是'utf-8',比如是'gbk',我们也可以传入encoding='gbk'参数。
f = open('test.txt', 'r', encoding='utf-8')
  • 打开文件并且读写完成之后,我们记得一定要使用f.close()关闭。如果我们使用with open('/path/to/file', 'r') as f:语法来打开,则不需要额外关闭文件,下面的读取和写入文件都采用这种语法。

  • open()方法的打开方式参数

参数 参数说明
r
w
a 追加
r+ 可读可写,文件若不存在就报错(IOError)
r+w 同上
w+ 可读可写,文件若不存在就创建
w+r 同上
a+ 可追加可写,文件若不存在就创建
a+r 同上
  • 备注:对应的,如果是二进制文件,就都加一个b就好了:rbwbabrb+wb+wb+

二、读取文件

  • python文件对象提供了三个“读”方法: read()readline()readlines()。每种方法可以接受一个变量以限制每次读取的数据量。
    • read()每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。如果文件大于可用内存,为了保险起见,可以反复调用read(size)方法,每次最多读取size个字节的内容。
    • readlines() 之间的差异是后者一次读取整个文件,像 read() 一样。readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for ... in ...结构进行处理。
    • readline() 每次只读取一行,通常比readlines()慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用 readline()
with open('test1.txt', 'r') as f:
    list = f.read()

二、写入文件

  • 写文件和读文件是一样的,唯一区别是调用open()函数时,传入标识符'w'或者'wb'表示写文本文件或写二进制文件
  • 在写入文件的时候,如果没有这个文件,就创建一个;如果有,那么就会先把原文件的内容清空再写入新的东西。所以若不想清空原来的内容而是直接在后面追加新的内容,就用'a'这个模式。
  • python文件对象提供了两个“写”方法: write()writelines()
    • write()方法和read()readline()方法对应,是将字符串写入到文件中。
    • writelines()方法和readlines()方法对应,也是针对列表的操作。它接收一个字符串列表作为参数,将他们写入到文件中,换行符不会自动的加入,因此,需要显式的加入换行符。
with open('test.txt', 'w') as f:
    f.write('Hello, world!')
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容