欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python入门

程序员文章站 2022-07-28 18:30:02
Day 09一、文件操作的模式与控制文件读写内容的模式文件的打开模式分两大类1、控制文件读写操作的模式r:只读(默认的):在文件不存在时则报错,文件存在时候指针调到文件开头w: 只写:在文件不存在时则创建空文件,文件存在时则清空,文件指针跳到文件开头a:只追加写:在文件不存在时则创建空文件,文件存在时也不会清空,文件指针跳到文件末尾总结:w与a的异同相同点:在打开了文件不关闭的情况下,连续地写入,新的内容永远跟在老内容之后不同点:重新打开文件,w会清空老的内容,而a模式会保留老的内容并...

Day 09

一、文件操作的模式与控制文件读写内容的模式

文件的打开模式分两大类

1、控制文件读写操作的模式

  1. r:只读(默认的):在文件不存在时则报错,文件存在时候指针调到文件开头
  2. w: 只写:在文件不存在时则创建空文件,文件存在时则清空,文件指针跳到文件开头
  3. a:只追加写:在文件不存在时则创建空文件,文件存在时也不会清空,文件指针跳到文件末尾

总结:w与a的异同

相同点:在打开了文件不关闭的情况下,连续地写入,新的内容永远跟在老内容之后

不同点:重新打开文件,w会清空老的内容,而a模式会保留老的内容并且指针跳到文件末尾

控制文件读写内容的模式

1、t (默认):读写都是以str字符串为单位,一定要指定encoding

2、b: 读写都是以bytes为单位,一定不能指定encoding参数

二、读写相关方法

读相关方法

read() 方法用于从文件读取指定的字节数,如果未给定或为负则读取所有

fileObject.read(size);

size – 从文件中读取的字节数,返回从字符串中读取的字节。

readline() 方法用于从文件读取整行,包括 “\n” 字符。如果指定了一个非负数的参数,则返回指定大小的字节数,包括 “\n” 字符

fileObject.readline(size)

size – 从文件中读取的字节数,返回从字符串中读取的字节。

readlines() 方法用于读取所有行(直到结束符)并返回列表,该列表可以由 Python 的 for… in … 结构进行处理。如果碰到结束符 EOF 则返回空字符串。

fileObject.readlines( );

无参数,返回列表,包含所有的行

with open(r"C:\Users\S\Desktop\userdata.txt", mode="rt", encoding="utf-8") as f:
    data = f.readlines()
    print(data)
-------------------------------
['qwwer:1234\n', '98777:12345\n', '2548:121\n', '1:1111\n', 'egon:1212\n', 'tank:dddd\n', 'mc:0909\n', 'gbq:555\n', 'v:v\n', 'fff:fff']

写相关方法

write() 方法用于向文件中写入指定字符串。在文件关闭前或缓冲区刷新前,字符串内容存储在缓冲区中,这时你在文件中是看不到写入的内容的。如果文件打开模式带 b,那写入文件内容时,str (参数)要用 encode 方法转为 bytes 形式,否则报错:TypeError: a bytes-like object is required, not ‘str’

fileObject.write( [ str ])

str – 要写入文件的字符串,返回的是写入的字符长度。

注:可以与flush连用即写即存但是比较占用内存

flush() 方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区写入但是比较占用内存

fileObject.flush();  # 无参数 无返回值

指针移动

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

fileObject.seek(offset[, whence])
  • offset – 开始的偏移量,也就是代表需要移动偏移的字节数
  • **whence:**可选,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。

注: seek 方法通常与telll方法一起用

tell() 方法返回文件的当前位置,即文件指针当前位置

fileObject.tell()  # 无参数 返回文件指针的当前位置。

控制文件内指针的移动都是以字节为单位,只有一种特殊情况,t模式下的read(size),代表的是size个字符,此外代表的全都是字节

模式

0模式:参照文件的开头开始移动(只有0模式可以在t下使用,1和2模式只能在b下使用)

**1模式:**参照指针当前所在的位置

2模式: 参照文件末尾的位置

本文地址:https://blog.csdn.net/A1L__/article/details/107392981

相关标签: Python study python