Python文件处理
python的文件读取
#!/bin/bash
# _*_ coding:utf-8 _*_
# 打开文件 并将文件对象赋值给file_object
file_object = open("file/file.txt",encoding="utf-8")
print("#### 读第一遍随后打印")
# 读取文件
file_content = file_object.read()
print(file_content)
print("#### 读第二遍后再打印")
# 读取文件
file_content_next = file_object.read()
print(file_content_next)
# 操作完文件后记得关闭文件对象
file_object.close()
得到结果如下:
#### 读第一遍随后打印 1. 第一行 2. 第二行 3. 第三行 4. 第四行 5. 第五行 6. 第六行 7. 第七行 8. 第八行 9. 第九行 10. 第十行 #### 读第二遍后再打印
可以看到第二次没有读取到文件内容,这是什么原因呢?
文件打开后生成了文件对象,在第一遍读取时,光标从文件的开始位置逐个字符读取到了最后一个,读取后光标的位置是在最后一个字符的后面。这是如果再读取第二遍,光标在文件的最尾,所以无法读取到信息。那么如何控制光标的移动呢?
我们可以使用seek(n),移动文件读取指针到指定位置
f.seek()的用法:
概述:
seek() 方法用于移动文件读取指针到指定位置。
语法:
fileObject.seek(offset[, whence])
参数:
- offset: 开始的偏移量,也就是代表需要移动偏移的字节数
- whence:可选,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;
- 0代表从文件开头开始算起
- 1代表从当前位置开始算起
- 2代表从文件末尾算起
那么还有那些方法呢?
f.closed():
概述:
判断文件是否是关闭状态(是否可操作)
f.readable()
概述:
判断文件是否是r模式打开的
f.readline()
概述:
一次读取一行
f.readlines()
概述:
读取所有行,保存成列表的形式

浙公网安备 33010602011771号