python3读取文本文件分开写入

这段代码演示了如何使用Python3读取文本文件,根据特定分隔符将内容分离并写入不同的文件。它逐行读取文本,区分'他说'和'你说'的角色,将对应的内容写入不同的文件。
摘要由CSDN通过智能技术生成

import os
hesay=[]
hersay=[]
count=1
f= open("D://python3pra/textfield.txt")
for spoke_line in f :
    print(spoke_line)
    if(spoke_line[:6]!="======"):
        (role,speak) = spoke_line.split(':',1)
        if(role=="他说"):
            hesay.append(speak)
        else:
            hersay.append(speak)
        
    else:
        he_file_name="hesaid"+str(count)+".txt"
        her_file_name="hersaid"+str(count)+".txt"
        hefile= open(he_file_name,'w')
        herfile =open(her_file_name,'w')
        hefile.writelines(hesay)
        herfile.writelines(hersay)
        hefile.close()
        herfile.close()
        hesay=[]
        hersay=[]
        count+=1
he_file_name="hesaid"+str(count)+".txt"
her_file_name="hersaid"+str(count)+".txt"
hefile= open(he_file_name,'w')
herfile =open(her_file_name,'w')
hefile.writelines(hesay)
herfile.writelines(hersay)
hesay=[]
hersay=[]
count+=1
hefile.close()
herfile.close()
f.close()

 

联系的时候遇到个问题就是不知道怎么循环读取,导致第一次只有一条数据进来

一开始想的是先用speak_line = f.readline() 读取  for each in speak_line 这样会一个字符一个字符 循环 

查了一下for spoke_line in f 这么循环就行, 应该是 一句话换行以后 就认为是结尾了然后先读取这一行,然后再下一行依次

读取完成,并不是一次性全部取出来

 

测试将文本改为一句话,验证此说法确实是根据换行符来读取文本的

 

他说:打开文件 open(file,mode='r',buffering=-1,enconding=None,errors=None,newline=None,closefdTrue,opener=None)你说:第一个参数文件名 如果不带路径就从当前文件夹下打开他说:第二个参数 打开模式  'r' 只读方式打开 'w' 写入 'x' 文件已经存在,使用此模式打开会异常 'a' 已写入模式打开,如果文件存在,则在末尾追加写入 'b' 以二进制打开 't' 以为本(默认)你说:文件对象的方法他说:close() 关闭文件 你说:read(size=-1) 从文件读取size个字符,党委给定size或给定负值读取剩余的所有字符,然后作为字符串返回他说:readline() 从文件中读取一整行字符串你说:write(str) 将字符串str写入到文件
=====================================
你说:文件系统他说:getcwd() 获取应用程序当前的工作目录你说:import os  os模块他说:os.getcwd()你说:chidir(path) 改变当前工作目录他说:os.chdir("E:\\") os.getcwd()你说:listdir(path='.') 目录下有哪些文件和子目录  '.'代表根目录 '..'上一目录他说: mkdir(path) 创建文件夹,如果存在抛异常
====================================
你说:os.path模块他说:basename(path)  dirname(path)你说:获得文件名 和 路径名他说:os.path.join(path1[,path2[,...]]) os.path.join(r"C:\python\test","123.txt") 将文件名和路径名组合成一个完整路径你说:split(path) splitext(path)
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值