学习了如何创建文件并写入信息,那么还需要学习怎么在程序里使用文件中的内容,关于文件的操作,下面表格里汇总了多种方式。
方法 | 说明 |
file.read([number]) | 这种方式用于读取文本的指定字符串长度 |
file.readline() | 这种方式读取文本的第一行内容 |
flie.readlines() | 这种方式读取了文本的所有内容,并把每一行内容放到一个list中 |
file.flush() | 刷新缓冲区,立即写到磁盘上 |
file.seek(index) | 移动文件到指定的索引处,从此位置开始读取,但写入从最后开始 |
with open | 使用完自动关闭,省去file.close()操作 |
encoding='utf-8' | 读写的文件含中文时添加 |
1. 读写指定字符串
使用file.read([number])方法
代码如下:
123456 | file = open ( 'test.txt' , 'w' ) file .write( '第一次写入的内容。' ) file = open ( 'test.txt' , 'a+' ) file .write( '第二次追加写入的内容。' ) print ( file .read( 8 )) file .close() |
输出结果为:
1 | 第一次写入的内容 |
文件中的内容为:
1 | 第一次写入的内容。第二次追加写入的内容。 |
需要注意的是,我们在进行读的时候,一定要保证当前文件是打开的状态,如果我们写完了信息就把文件关闭了,那么我们将读取不到信息而且会出现异常,异常如下:
1234 | Traceback (most recent call last): File "C:/Users/test.py" , line 6 , in
print ( file .read( 8 )) ValueError: I / O operation on closed file . |
2. 读取一行内容
使用file.readline()方法。
代码如下:
1234567 | file = open ( 'test.txt' , 'w' ) file .write( '第一次写入的内容。' ) file = open ( 'test.txt' , 'a+' ) file .write( '\n' ) file .write( '第二次追加写入的内容。' ) print ( file .readline()) file .close() |
输出结果为:
1 | 第一次写入的内容。 |
文件中内容为:
12 | 第一次写入的内容。 第二次追加写入的内容。 |
这种读取方式每次仅仅读取一行,对于内容过多的文件可以采用这种方式去逐行读取。
3. 按行全部读取
使用file.readlines()方法。
代码如下:
12345678910 | file = open ( 'test.txt' , 'w' ) file .write( '第一次写入的内容。' ) file = open ( 'test.txt' , 'a+' ) file .write( '\n' ) file .write( '第二次追加写入的内容。' ) print ( file .readlines()) file .close() file = open ( 'test.txt' , 'r' ) print ( file .readlines()) file .close() |
输出结果为:
1 | [ '第一次写入的内容。\n' , '第二次追加写入的内容。' ] |
文件内容为:
12 | 第一次写入的内容。 第二次追加写入的内容。 |
使用这种方式的时候我们需要注意读取的时候采用的模式为r或者r+,如果是一个已经存在的文件,我们可以直接进行读取,如果是我们刚刚完成写入的一个文件,大家可以先关闭,再采用r格式进行读取。
4. 总结
三种读取方式各有千秋,大家还可以通过file.seel(index)的方式访问下标去读取,还可以通过循环文件进行高效的文件读取。