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()

  概述:

    读取所有行,保存成列表的形式

    

 

posted @ 2018-01-11 17:10  lfatty  阅读(166)  评论(0)    收藏  举报