通过内建函数open可以方便的打开文件,需要提供文件的绝对路径或者相对路径,可以指定读取文件的方法,读取的文件内容可以按行进行遍历处理。读取完成之后,需要手动关闭文件对象,不然会占用一定的资源。
另一个比较方便的方法是使用with代码块,在代码块执行完成之后,它会自动对资源进行一个释放。
# f = open(r'e:\dir\of\file')# for line in f:# print(line)# f.close()with open(r'e:dir\of\file') as f:for line in f:print(line)
| 模式 | 描述 |
|---|---|
| r | 只读模式 |
| w | 只写模式,创建新文件(清楚路径下的同名文件中的数据) |
| x | 只写模式,创建新文件,但存在同名路径时会创建失败 |
| a | 添加到已经存在的文件(如果不存在就创建) |
| r+ | 读写模式 |
| b | 二进制文件的模式,添加到别的模式中(比如’rb’或’wb’) |
| t | 文件的文本模式(自动将字节解码为Unicode)。如果没有指明模式,默认使用此模式,可以添加到别的模式中(例如’rt’或’xt’) |
| 方法 | 描述 |
|---|---|
| read([size]) | 将文件数据作为字符串返回,可选参数size控制读取的字节数 |
| readlines([size]) | 返回文件中行内容的列表,size参数可选 |
| write(str) | 将字符串写入文件 |
| writelines(strs) | 将字符串序列写入文件 |
| close() | 关闭文件 |
| flush() | 将内部I/O缓冲器内容刷新到硬盘 |
| seek(pos) | 移动到指定的位置(整数) |
| tell() | 返回当前的文件位置,返回值是整数 |
| closed | 如果文件已关闭,则为True |
字节与Unicode文件
对于Unicode文件,可以通过添加encoding参数读取Unicode文件。需要注意的是,Unicode文件在移动读取位置时,有可能位于某个Unicode编码中间使得读取报错。
