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)