文件操作

1 文件操作

1.1 模式

基本操作

  r:只读

  w:只写(没文件创建新文件,有文件先清空)

  x:不存在就创建,存在就报错,只写

  a:追加,只写

二进制(传输使用)

  rb:

  wb:

  xb:

  ab:

+模式

  r+:读写

    读:从0开始读

    写:

      1.如果先读,最后追加

      2.主动seek,写从当前指针开始写

      3.不读先写的时候,会覆盖写

  w+:读写

  x+:读写

  a+:读写

    读:从文件最后位置开始读

    写:最后追加,主动seek也是最后追加

1.2 指针

seek  跳转到某个位置

概述

seek() 方法用于移动文件读取指针到指定位置。

语法

seek() 方法语法如下:

fileObject.seek(offset[, whence])

参数

  • offset -- 开始的偏移量,也就是代表需要移动偏移的字节数

  • whence:可选,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。

实例

以下实例演示了 readline() 方法的使用:

文件 runoob.txt 的内容如下:

1:www.runoob.com
2:www.runoob.com
3:www.runoob.com
4:www.runoob.com
5:www.runoob.com

循环读取文件的内容:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

# 打开文件
fo = open("runoob.txt", "rw+")
print "文件名为: ", fo.name

line = fo.readline()
print "读取的数据为: %s" % (line)

# 重新设置文件读取指针到开头
fo.seek(0, 0)
line = fo.readline()
print "读取的数据为: %s" % (line)


# 关闭文件
fo.close()

以上实例输出结果为:

文件名为:  runoob.txt
读取的数据为: 1:www.runoob.com

读取的数据为: 1:www.runoob.com

tell:看指针位置

1.3 文件操作里的方法

trancate(x)  截取x个字符

read()

  read(1):无b,读一个字符

  read(1):有b,读一个字节

write()

  str:无b,写字符串

  bytes:有b,写字节

readline ()   只读取一行

readlines()   把文件读的每一行都添加到一个列表中(特别占内存)

flush()   强行输入硬盘

seek()   调整指针

  

原文地址:https://www.cnblogs.com/amiee-785563694/p/6788736.html