ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## 1.文件的读写 ### 1.1.打开文件 `open(name[.mode[.buffering]])` open函数使用一个文件名作为唯一的强制参数,返回一个文件对象。模式(mode)和缓冲区(buffering)参数都是可选的,默认模式是读模式,默认缓冲区是无。 ### 1.2.文件模式 | 值 | 功能描述 | | --- | --- | | 'r' | 读模式 | | 'w' | 写模式 | | 'a' | 追加模式 | | 'b' | 二进制模式(可添加到其他模式中使用) | | '+' | 读/写模式(可添加到其他模式中使用) | 'b'参数的使用,一般文本处理用不到'b'参数的,但处理二进制文件,比如mp3音频或者图像,在参数中加入'b',处理媒体文件常用。参数'rb'用了读取一个二进制文件。 ### 1.3.文件缓冲区 buffering参数,如果是0,I/O操作就是无缓冲的,直接写在硬盘上;如果是1,I/O操作就是有缓冲的,数据先写到内存里,使用flush函数或者close函数才会将数据更新的硬盘;如果大于1,代表缓冲区的大小(单位是字节),-1(或者任何负数)代表默认缓冲区的大小。 ### 1.4.文件读取 文件读取主要是按字节读取和按行进行读取,经常用到的方法有read()、readlines()、close()。 文件读取过程:打开文件,成功打开文件之后调用read()方法则可以一次性将文件内容全部读到内存中,返回str类型的对象,最后调用close(),关闭对文件的引用。文件使用完毕后必须关闭。 由于文件操作可能会出现I/O异常,一旦出现I/O异常,后续的close()不会被调用,一如try...finally ``` try: f = open(r'c:\text.txt', 'r') print f.read() finally: if f: f.close() // 或 with open(r'c:\text.txt', 'r') as fileReader: print fileReader.read() ``` 小文件的读取使用read()方法读取到内存,大文件安全性地读取连续调用readlines()方法,对于配置文件等文本文件,使用readlines()更加合理。 ``` with open(r'c:\text.txt', 'r') as fileReader: for line in fileReader.readlines(): print(line.strip()) ``` ### 1.5.文件写入 传入标识符'w'或者'wb',表示写入文本文件或者二进制文件。 ``` f = open(r'c:\text.txt', 'w') f.write('test content') f.close() // 或 with open(r'c:\text.txt', 'w') as fileWriter: fileWriter.write('test content') ``` ## 2.序列化操作