6、Python之文件操作
一、文件操作流程
- 打开文件,得到文件句柄并赋值给一个变量
- 通过句柄对文件进行操作
- 关闭文件
1、读文件
1 file = open("data.txt","r",encoding='utf-8') #data.txt 文件 r-只读 utf-8编码规则 file为文件句柄 2 #f = file.read() #将文件所有数据读到内存中地址指向f 3 #f = file.readline() #读取文件一行 4 #f = file.readlines() #读取文件所有行并将其转为列表,每行表示列表的一个元素 5 p = file.tell() #显示当前文件坐标显示的位置 6 p = file.seek(3) #将文件坐标移到第三个位置 7 8 print(file.readable()) #判断文件是否可读 9 print(file.readline()) 10 11 file.close() #关闭文件
2、写文件
1 file = open("data.txt","w",encoding='utf-8') #data.txt 文件 w-只写 utf-8编码规则 file为文件句柄 2 file.write("我在写文件,如果文件不存在就新建一个文件,如果存在就清楚之前的文件内容,然后写入!\n表示换行") 3 print(file.writable()) #判断文件是否可读 4 file.flush() #刷新缓冲区 5 file.writelines("\n我表示像文件中写入一行") 6 file.close() #关闭文件
代码4file.flush()表示刷新缓冲区,我们在写文件的时候一般不是直接写到磁盘上的,而是先写入内存的一个缓冲区中,等缓冲区满了,再将数据一次性写入磁盘,file.flush()方法就是将缓冲区中的数据写入磁盘而不需要等待缓冲区是否满。
3、文件追加内容
1 file = open("data.txt","a",encoding='utf-8') #data.txt 文件 a-追加 utf-8编码规则 file为文件句柄 2 file.write("因为文件模式为a,所以我会将这行内容追加到文件的最后位置") 3 print(file.tell()) #因为文件模式为a(追加模式),所以文件下标会默认移到文件最后位置 4 file.truncate(99)#从文件起始位置开始截取长度为100个字节 5 print(file.fileno()) #打印文件编号 6 file.close() #关闭文件
3、with语句
我们有时候在打开文件的时候会忘记关闭,这时候我们使用with关键字来打开文件即可,语法如下:
1 with open("data.txt","r",encoding='utf-8') as f: #打开单个文件 2 pass 3 with open('log1') as obj1, open('log2') as obj2: #打开多个文件的语法 4 pass
4、打开文件的模式有:
- r,只读模式(默认)。
- w,只写模式。【不可读;不存在则创建;存在则删除内容;】
- a,追加模式。【可读; 不存在则创建;存在则只追加内容;】
"+" 表示可以同时读写某个文件
- r+,可读写文件。【可读;可写;可追加】
- w+,写读
- a+,同a
"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)
- rU
- r+U
"b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)
- rb
- wb
- ab