二周五次课(10月27日)
1.读取文件内容
文件操作需要3步:
1.1 open文件
1.2 文件操作(读或者写)
1.3 关闭文件
例子:
import codecs f = codecs.open('1.txt') print(f.read()) f.close()
结果:
111 aaaa 5gbj677ddd
注:codecs类是解决文件乱码的问题。
2.写入一个新的文件
open(filename, mode)
mode有几个参数:
r——读
w——写
b——二进制
a——追加
例子:
import codecs f = codecs.open('2.txt', 'wb') f.write('hello world!\n') f.write('I love you!\n') f.close()
结果:新建了文件2.txt,内容如下:
hello world! I love you!
注:\n是换行
3.With的特殊用法
有时候,我们可能在编码的时候忘记关闭文件,这个就有点不完美了,如果有太多的文件没有关闭,这个会对系统造成压力,那有没有什么方法,在我们不用文件的时候直接给我们自动关闭文件呢?
例子:
import codecs with codecs.open('1.txt', 'rb') as f: print(f.read())
结果:
111 aaaa 5gbj677ddd
with的方法在我们平时工作的开发过程中是最常用的,他简单方便,支持快速开发,不需要考虑文件关闭的情况。
4.Codecs的特殊使用
codecs类是解决文件乱码的问题。
例子:
import codecs f = codecs.open('1.txt') print(f.read()) f.close()
结果:
111 aaaa 5gbj677ddd
5.文件操作的常用方法
file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数:
序号 | 方法及描述 |
---|---|
1 | 关闭文件。关闭后文件不能再进行读写操作。 |
2 | 刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。 |
3 | 返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。 |
4 | 如果文件连接到一个终端设备返回 True,否则返回 False。 |
5 | 返回文件下一行。 |
6 | 从文件读取指定的字节数,如果未给定或为负则读取所有。 |
7 | 读取整行,包括 "\n" 字符。 |
8 | 读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比sizhint较大, 因为需要填充缓冲区。 |
9 | 设置文件当前位置 |
10 | 返回文件当前位置。 |
11 | 截取文件,截取的字节通过size指定,默认为当前文件位置。 |
12 | 将字符串写入文件,没有返回值。 |
13 | 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。 |
readline()方法用来打印文件的一行内容:
import codecs with codecs.open('1.txt', 'rb') as f: print(f.readline())
结果:
111
readlines()方法,读取文件,最后把文件每行的内容作为一个字符串的单个元素,放在一个list中。
import codecs with codecs.open('1.txt', 'rb') as f: print(f.readlines())
结果:
['111\r\n', 'aaaa\r\n', '5gbj677ddd\r\n']
next()方法读取文件下一行内容,返回一个字符串
import codecs with codecs.open('1.txt', 'rb') as f: print(f.next())
结果:
111