文件[扩展名] .exe .txt .jpg .mp4
…
Python 中 open() 方法用于打开一个文件,并返回文件对象,所以需要接收。
如果该文件无法被打开,会抛出 OSError
(操作系统产生的异常)。
注意:使用 open() 方法一定要保证关闭文件对象,即调用 close()
方法。
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
除了第一个参数,别的都有默认参数。
接收文件名(file)
和模式(mode)
两个参数。
open(file, mode='r')
参数 | 说明 |
---|---|
file | 必需,文件路径(相对或者绝对路径) |
mode | 可选,文件打开模式 |
buffering | 设置缓冲 |
encoding: | 编码格式,一般使用utf-8 |
errors | 报错级别 |
newline | 区分换行符 |
closefd | 传入的file参数类型 |
参数 | 说明 |
---|---|
+ | 打开一个文件进行更新(可读可写) |
b | 二进制模式 |
r | 只读,默认打开方式,文件的指针将会放在文件的开头,当文件不存在时会报错 |
r+ | 可读可写,当文件不存在时会报错 |
rb | 以二进制读模式打开,只可读,一般用于非文本文件如图片 |
rb+ | 以二进制读写模式打开,可读可写,当文件不存在时报错,一般用于非文本文件如图片 |
w | 只写,当文件不存在时会自动创建文件。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。文件内容只能是字符串,只能写入字符串 |
w+ | 可读可写,当文件不存在时会新建,存在原文件会被清空 |
wb | 以位进制写模式打开,只可写,当文件不存在时会新建,存在原文件会被清空 |
wb+ | 以二进制读写模式打开,可读可写,当文件不存在时会新建,存在原文件会被清空 |
a | 追加文件,不可读。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 追加文件,可读可写 |
ab | 以二进制追加模式打开,追加文件,不可读 |
ab+ | 以二进制读写模式打开,追加文件。可读可写 |
方法 | 描述 |
---|---|
file.close() | 关闭文件,关闭后文件不能再进行读写操作。 |
file.flush() | 刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。 |
file.read([size]) | 从文件读取size个字符,当未给定size或给定负值的时候,读取剩余的所有字符,并作为字符串返回。 |
file.readline([size]) | 读取整行,将文件指针位置输出一行,包括 “\n” 字符。 |
file.readlines([sizeint]) | 读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比 sizeint 较大, 因为需要填充缓冲区。 |
file.tell() | 返回文件当前位置。 |
file.write(str) | 将字符串写入文件,返回的是写入的字符长度。 |
f.seek(offset,from) | 在文件中移动文件指针,从from(0代表文件起始位置,1代表当前位置,2代表文件末尾)偏移offset个字节,非二进制模式下不允许使用中间和末尾的偏置 |
文档内容:
一
22
333
4444
55555
666666
7777777
88888888
999999999
0000000000
哈哈哈哈哈哈
with open("file.txt",'w',encoding='utf-8') as f:
print(f.readable()) #False
print(f.writable()) #Ture
f= open("file.txt",'r',encoding='utf-8') #encoding默认操作系统编码
file_data=f.read() #完全读取
print(file_data)
f.close() #需要执行关闭操作
with open("file.txt",encoding='utf-8')as f:
file_data=f.read()
print(file_data) #不需要执行close(),系统会自动关闭
#coding=utf-8
with open("file.txt",encoding='utf-8')as f:
#一次只读一行
print(1, f.readline()) #1 一
print(2, f.readline()) #2 22
print(3, f.readline()) #3 333
with open("file.txt",encoding='utf-8')as f:
print(f.readlines()) #输出整个文件的列表格式
print(type(f.readlines())) #list
with open('file.txt','w+',encoding='utf-8') as f:
f.write('a\n')
f.write('b\nc\n')
f.writelines(['d\n', 'e\n'])
f.seek(0) #将指针seek到0位置,否则读不出数据
print(f.read())
# a\n b\n c\n d\n e\n
with open('file1.txt','r+',encoding='utf-8') as f:
f.seek(6)
f.write("a\n")
f = open("A.txt")
list(f)
f = open("A.txt")
f.seek(0,0)
for each_line in f:
print(each_line)
欢迎指正错误!