Python open 读写小栗子

1、样本内容 A.txt

2、上代码:

f=open(r'E:A.txt','r')

boyA=[]
boyB=[]
count =1

for each_line in f:
    if each_line[:6]!='======':
        (role,line_spoken)=each_line.split(':',1)
        print((role,line_spoken))
        if role == 'A':
            boyA.append(line_spoken)
        if role =='B':
            boyB.append(line_spoken)
    else:
        file_name_boyA = r'E:oyA_'+str(count)+'.txt'
        file_name_boyB = r'E:oyB_' + str(count) + '.txt'

        boyA_file = open(file_name_boyA,'w')
        boyB_file = open(file_name_boyB, 'w')

        boyA_file.writelines(boyA)
        boyB_file.writelines(boyB)

        boyA_file.close()
        boyB_file.close()

        boyA = []
        boyB = []
        count += 1

file_name_boyA = r'E:oyA_' + str(count) + '.txt'
file_name_boyB = r'E:oyB_' + str(count) + '.txt'

boyA_file = open(file_name_boyA,'w')
boyB_file = open(file_name_boyB, 'w')

boyA_file.writelines(boyA)
boyB_file.writelines(boyB)

boyA_file.close()
boyB_file.close()

f.close()

3、上结果:

4、代码优化一下

#第二个函数
def save_file(boyA,boyB,count):
    file_name_boyA = r'E:oyA_' + str(count) + '.txt'
    file_name_boyB = r'E:oyB_' + str(count) + '.txt'

    boyA_file = open(file_name_boyA, 'w')
    boyB_file = open(file_name_boyB, 'w')

    boyA_file.writelines(boyA)
    boyB_file.writelines(boyB)

    boyA_file.close()
    boyB_file.close()

#第一个函数
def split_file(file_name):
    f=open(file_name,'r')

    boyA = []
    boyB = []
    count = 1
    for each_line in f:
        if each_line[:6]!='======':
            (role,line_spoken)=each_line.split(':',1)
            print((role,line_spoken))
            if role == 'A':
                boyA.append(line_spoken)
            if role =='B':
                boyB.append(line_spoken)
        else:
            save_file(boyA, boyB, count)

            boyA = []
            boyB = []
            count += 1

    save_file(boyA,boyB,count)

    f.close()

# 调用
split_file(r'E:A.txt')
原文地址:https://www.cnblogs.com/youmingkuang/p/7454123.html