文件操作
常见的文件类型:
- txt
- html
- csv
- json
文件的操作流程:
- 打开 open()
- 读、写 read()[readline()逐行读取/readlines()多行读取]/write()
- 关闭 close()
用途 | 方法 | 功能 |
---|---|---|
打开文件 | f=open(file) | 打开文件 |
关闭文件 | f.close() | 关闭文件 |
读取文件 | f.read(size) | 从文件中读取(指定字节数),未指定读取所有数据. |
读取文件 | f.readline(size) | 从文件中读取整行 包括换行符 |
读取文件 | f.readlines(size) | 从文件中读取所有行,返回列表 |
写入文件 | f.write(str) | 将字符串写入文件,返回字符串长度 |
写入文件 | f.writeline(seq) | 向文件写入一个序列、字符串、列表,需要换行手动加入换行符 |
刷新文件 | f.flush() | 刷新文件缓冲,直接把内容缓冲的数据写入文件 |
定位文件 | f.seek(offset) | 设置文件的当前位置,即指针位置 |
定位文件 | f.tell() | 返回文件的当前位置,即指针位置 |
文件的打开与关闭
打开
- 内置函数open,创建一个file对象,之后才可以调用它相关的方法
格式:file_object=open(file_name,[mode];[encoding],buffering)
- open的参数
open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
- 解释
file_object open() 返回的文件对象
file 要打开的文件
mode 指定的模式:只读写入,等等(下表),默认为只读
encoding 指定文件的编码方式,通常使用’utf-8’、‘GBK’
buffering 小于0:寄存区大小为系统默认,0:不会寄存,1:访问文件时会寄存行,大于1:寄存区的缓存大小
mode
mode | 操作 | 文件不存在时 | 可否读、写 |
---|---|---|---|
r | 读取文件内容 | 报错 | 只可读 |
w | 覆盖前内容写入 | 创建文件 | 只可写 |
a | 保留前内容写入 | 创建文件 | 只可写 |
r+ | 覆盖前读写内容 | 报错 | 可读写 |
w+ | 覆盖前内容写入 | 创建文件 | 可读写 |
a+ | 保留前内容写入、读 | 创建文件 | 可读写 |
注
1.'r’从指针位置开始写入,当已经读过内容(read),指针来到内容末端,此时又会从末尾追加写入
’2.rb’等带’b’的都是以二进制格式打开文件,其用法相同
3.’a+‘等方式打开后指针在内容末端,此时读取会没有内容只有一个换行符,需要在read前面加一个seek(0,0)将指针指向内容开头
- 文件对象的属性
属性 | 描述 |
---|---|
f.name | 返回文件的名称 |
f.mode | 返回打开文件的访问模式 |
f.closed | 返回文件是否已经关闭,以关返回True |
f=open('青花瓷.txt','r',encoding='utf-8')
f.read()
print(f.name)
print(f.mode)
print(f.closed)
f.close()
print(f.closed)
结果
青花瓷.txt
r
False
True
关闭
f.close( )
目的:打开后文件一直使用进程,关闭后可以节省计算机资源和提供性能.
文件的读取
- read
f=open('GreenFlowerPorcelain.txt','r')
print(f.read(4))
print(f.read(4))
f.close()
1 G ###读取文件前4个字符
reen ####再读取4个字符(指针向后移动了4)
- readline
f=open('GreenFlowerPorcelain.txt','r')
f1=f.readline()
f2=f.readline()
f3=f.readline()
print(f1,f2,f3,sep=''