Python_文件操作(文件打开形式,与文件常见方法(读取中文文件),拆分文件任务)

文章目录

1.文件打开形式

  1. r只读

  2. w只写

  3. r+,可读可写。当文件存在时会报错

  4. w+,可读可写。当文件不存在时会新建

  5. a ,追加文件,不可读

  6. a+,追加文件,可读可写

  7. rb 以二进制读模式打开。只可读

  8. rb+ 以二进制写读写模式打开。可读可写,当文件不存在时报错

  9. wb 以位进制写模式打开。只可写

  10. wb+ 以二进制读写模式打开。可读可写。当文件不存在时新建

  11. ab 以二进制追加模式打开。追加文件,不可读

  12. ab+ 以二进制读写模式打开。追加文件。可读可写

2.文件常见操作

open函数打开文件

注意,打开文件时要带路径

#-*-coding:GBK -*- 
# -*- coding: UTF-8 -*-

#open函数打开文件带路径,默认当前路径
f=open("./测试.txt",'w+')#以写的形式创建文件,文件不存在时新建

Python_文件操作(文件打开形式,与文件常见方法(读取中文文件),拆分文件任务)
open函数返回一个文件描述符,默认打开方式是读取。

注意:open函数打开中文文件

注意:如果要读取中文文件,需要在open函数后添加encoding='utf-8'

f=open("./测试.txt",‘r’,encoding=‘utf-8’)

close函数关闭文件

#-*-coding:GBK -*- 
# -*- coding: UTF-8 -*-

#open函数打开文件带路径
f=open("./测试.txt",'w+')
#关闭文件
f.close()

read函数读取文件内容

.read(size=-1),默认size=-1时读取文件的所有内容,并作为字符串返回。

如果size不为-1,则读取size个字符数据

#-*-coding:GBK -*- 
# -*- coding: UTF-8 -*-

#open函数打开文件带路径
f=open("./测试.txt",'r',encoding='utf-8')

str=f.read()
print(str)

#关闭文件
f.close()

Python_文件操作(文件打开形式,与文件常见方法(读取中文文件),拆分文件任务)

tell函数,返回文件指针当前指向

#-*-coding:GBK -*- 
# -*- coding: UTF-8 -*-

#open函数打开文件带路径
f=open("./测试.txt",'r',encoding='utf-8')

str=f.read(8)#读取8个字
print(str)
print(f.tell())

#关闭文件
f.close()

Python_文件操作(文件打开形式,与文件常见方法(读取中文文件),拆分文件任务)

seek(offset,from)函数,更改文件指针指向

from=0代表从起始位置开始计算
from=1代表从当前文件指针位置开始计算。
from=2代表从文件末尾
偏移offset个字节

#-*-coding:GBK -*- 
# -*- coding: UTF-8 -*-

#open函数打开文件带路径
f=open("./测试.txt",'r',encoding='utf-8')

str1=f.read(8)
print(str1)
print(f.tell())

print(f.seek(5,0))

#关闭文件
f.close()

Python_文件操作(文件打开形式,与文件常见方法(读取中文文件),拆分文件任务)

writelines/write函数向文件内写入数据

writelines(seq)向文件中写入字符串序列

writ(str)向文件中写入字符串str

#-*-coding:GBK -*- 
# -*- coding: UTF-8 -*-

#open函数打开文件带路径
f=open("./测试.txt",'w+',encoding='utf-8')

f.write("喜欢你软起来的样子")

f.close()#刷新文件

f=open("./测试.txt",'r',encoding='utf-8')

str=f.read()

print(str)

#关闭文件
f.close()

Python_文件操作(文件打开形式,与文件常见方法(读取中文文件),拆分文件任务)

3.文件任务(文件拆分)

eg:

A:这个问题谁来解决?
B:我来!
===================
A:新年快乐
B:谢谢,同乐
===================
A:C++是世界上最好的语言
B:胡说,明明是PHP

将上述文件拆分为3个文件,A的放到一个3个文件中,B的放到3个文件中

def Save(A,B,cout):
 #文件保存
    Name_A="A"+str(cout)+".txt"
    Name_B="B"+str(cout)+".txt"
    Af=open(Name_A,'w')
    Bf=open(Name_B,'w')
    Af.writelines(A)
    Bf.writelines(B)
    #写入后关闭
    Af.close()
    Bf.close()    

f=open("./read.txt",'r',encoding='UTF-8')
A=[]
B=[]
cout=1#计数器
for each_line in f:
    if each_line[:6]!="======":#判断前6个字是不是===
        #字符串分割
        (role,line_spoken)=each_line.split(":",2)#字符串分割
        if role=="A":
            A.append(line_spoken)
        elif role=="B":
            B.append(line_spoken)
    else:
        Save(A,B,cout)
        #清空A B列表
        A=[]
        B=[]
        cout+=1
#将剩下的内容保存起来
Save(A,B,cout)
f.close()

运行结果
Python_文件操作(文件打开形式,与文件常见方法(读取中文文件),拆分文件任务)

上一篇:JWT消息构成


下一篇:JDBC入门