常见文件类型
- txt
- csv
- html
- json
- …
文件操作
文件的打开
格式:
file_object=open(file,[,mode],[,encoding],[,buffering])
解释:
- file_object—>open()返回的文件对象
- fil—>要打开的文件
- mode:—>指定模式(只读,写入,追加等等。(默认只读))
- encoding—>指定文件编码,通常为:‘utf-8/gbk’
- buffering—>若设置为0,不会有寄存;设为1,访问文件时会寄存行;设置为大于1的数,表明是寄存区的缓冲大小;设置为负数时,则缓存区的大小为系统默认。
文件对象的属性:
属性 | 描述 |
---|---|
f.name | 返回文件的名称 |
f.mode | 返回打开文件的访问模式 |
f.closed | 如果文件已关闭,返回true,否则flase |
文件指定模式:
mode | 描述 |
---|---|
r | 只读,指针在文本最前(0,0),只能进行读,不可写,这是默认模式 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
w | 写,指针在文本最前(0,0),如果没有目标文本,会新建一个空目标文本;如果有,会清除目标文本中的所有内容,相当于新建一个空的目标文本后替换原文本 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
w+ | 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
a | 追加,如果有目标文本,指针会跳到文本的最后;如果没有找到,同w模式会新建一个空的文本。`` |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
f=open('C:/Users/lenovo/Desktop/GreenFlowerPorcelain.txt','r')
print(f.read())
print(f.name)
print(f.mode)
print(f.closed)
f.close()
print(f.closed)
#输出结果:
1 Green Flower Porcelain
2 You are the face that has changed my whole world.
3 You are the face that I see everywhere I go.
4 You are so beautiful to me that I can't explain ,
5 Just like a green flower porcelain.
6 You're like a moon that I awaken to say hello,
7 So beautiful and bright that you make me content to play it so.
8 I see your face on the leaves,telling me how lonely I have been.
9 This is a dream of mine that I have just dreamed.
10 Just see your smiling face everywhere I go.
11 The love I feel for you to shine inside me.
12 But it's all over now you're gone.
C:/Users/lenovo/Desktop/GreenFlowerPorcelain.txt
r
False
True
f1=f.readline(10)
print(f1)
a=open('C:/Users/lenovo/Desktop/青花瓷.txt','r',encoding='utf-8')
print(a.read())
文件的读写
#读
- f.read([size]):从文件中读取指定的字节数,若未指定,读取所有
- 从文件指针处读取
- 传递size,指定读取的字节数
- readline():读取整行,包括"\n"
- readlines():读取所有行,并返回列表
#写
- write():将字符串写入文件,并返回字符串长度
- writelines():向文件写入一个序列字符串列表。如果需要换行,需要自己假如换行符
文件的定位
-
f.tell():获取文件的当前位置。
-
f.seek()
-
seek(offet[,from])
-
offset:要偏移动的字节数
-
from:指定偏移的参考位置\
1、0----->从开头偏移
2、1----->当前位置偏移
3、2----->从末尾偏移
-
-
f.seek(10,0)
f3=f.read(10)
print(f3)
#输出结果:
lower Porc
##拓展##
with open('C:/Users/lenovo/Desktop/GreenFlowerPorcelain.txt','r') as f:
print(f.read())
print(f.closed)
import random
f=open('C:/Users/lenovo/Desktop/data.txt','w+')
for i in range(1024):
# f.write(str(random.randint(0,9)))
f.write(str(random.randint(0,9)) + '\n')
f.seek(0,0)
print(f.read())
文件的刷新
- f.flush():刷新文件缓存,直接把内部缓冲的数据写入文件。
文件的关闭
- f.close():节省计算机资源和提供性能,使用完文件之后,关闭它。