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

python3 文件

程序员文章站 2022-07-05 16:15:22
...

打开关闭文件

打开文件语法:文件句柄 = open(‘文件路径’,mode=‘模式’,encoding=‘编码’)

如果模式是是带‘b’的,可省略编码

关闭文件语法:文件句柄.close()

打开模式

#1. 打开文件的模式有(默认为文本模式):

r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】文件的指针将会放在文件的开头。

w,只写模式【不可读;不存在则创建;存在则清空内容】

a, 只追加写模式【不可读;不存在则创建;存在则只追加内容】文件指针将会放在文件的结尾。


#2. 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码、图片文件的jgp格式、视频文件的avi格式)

rb 

wb

ab

注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码


#3,‘+’模式(就是增加了一个功能)

r+, 读写【可读,可写】文件指针将会放在文件的开头。

w+,写读【可写,可读】如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被全部删除。如果该文件不存           在,创建新文件。

a+, 写读【可写,可读】文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。


#4,以bytes类型操作的读写,写读,写读模式

r+b, 读写【可读,可写】

w+b,写读【可写,可读】

a+b, 写读【可写,可读】

常见操作

f.read()

f.read()		#从指针(光标)位置读到文件结尾
f.read(3)		#从指针(光标)位置读三个字符(‘a’和‘你’都是一个字符)

f.readline([size])
读取整行,包括 "\n" 字符。从光标开始到改行结束

f.readlines([sizeint])
读取所有行并返回列表,每一行为一个列表元素,包含'\n'。若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比 sizeint 较大, 因为需要填充缓冲区。一般不填。

f.write(str)
从指针位置开始写入,覆盖写入,假如源文件为‘0123456789’,写入后为‘你好6789’。
一个中文三个字节,一个英文一个字节。将字符串写入文件,返回的是写入的字符长度。


f.writelines(sequence)

向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。

截取

f.truncate([size])
从文件的首行首字符开始截断(无论光标在哪),截断文件为 size 个字符,无 size 表示从当前位置截断;截断之后后面的所有字符被删除,其中 Widnows 系统下的换行代表2个字符大小。

文件指针操作类

f.next()
返回文件下一行。

f.seek(offset[, whence])
设置文件当前位置

f.tell()
返回文件当前位置。

其他

file.flush()
刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。

file.fileno()
返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。

file.isatty()

如果文件连接到一个终端设备返回 True,否则返回 False。

迭代器

f=open('text.txt',mode='r+',encoding='utf-8')
for line in f:
    print(line)#逐行打印
f.close()


相关标签: python