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:\boyA_'+str(count)+'.txt' file_name_boyB = r'E:\boyB_' + 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:\boyA_' + str(count) + '.txt' file_name_boyB = r'E:\boyB_' + 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:\boyA_' + str(count) + '.txt' file_name_boyB = r'E:\boyB_' + 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')
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了