胖胖的小阿涵 发表于 2021-1-3 21:43:26

我明明照着小甲鱼的程序写的为什么就是出不来那三个文本文件呢

def save_file(boy,girl,count):
   
      file_name_boy='boy_'+str(count)+'.txt'
      file_name_girl='girl_'+str(count)+'.txt'

      boy_file=open(file_name_boy,'w')
      girl_file=open(file_name_girl,'w')

      boy_file.writelines(boy)
      girl_file.writelines(girl)

      boy_file.close()
      girl_file.close()
def split_file(file_name):
   
    f=open('E:/test.txt')
    boy=[]
    girl=[]
    count=1
    for each_line in f:
      if each_line[:6]!='======':
            (role,line_spoken)=each_line.split(':',1)
            if role=='小甲鱼':
                boy.append(line_spoken)
            if role=='小客服':
                girl.append(line_spoken)
            else:
                save_file(boy,girl,count)
                boy=[]
                girl=[]
                count+=1

    save_file(boy,girl,count)
    f.close()

split_file('E:/test.txt')

昨非 发表于 2021-1-3 21:44:20

本帖最后由 昨非 于 2021-1-3 21:45 编辑

编码方式改一下
下面的第十七十八行

昨非 发表于 2021-1-3 21:45:15

#定义写入函数
def save_file(boy,girl,count): #传入两个列表(用于存储对话内容)和一个计数器
    file_name_boy='boy_'+str(count)+'.txt'#新建一系列文件,命名由字符串拼接
    file_name_girl='girl_'+str(count)+'.txt'#同理
   
    boy_file=open(file_name_boy,'w')#以写入方式打开
    girl_file=open(file_name_girl,'w') #同理
   
    boy_file.writelines(boy) #写入
    girl_file.writelines(girl)
   
    boy_file.close()   #关闭
    girl_file.close()
   
#定义切分函数   
def spilt_file(file_name): #传入文件名
      f = open(file_name,"r",encoding='UTF-8')
         #关键点,编码方式                   就这里换个编码形式
      boy=[]   
      girl=[]
      count=1   
            
      for each_line in f: #遍历原对话文件每一行
            if each_line[:6]!='======':#以分割线判断
                (role,line_spoken)=each_line.split(':',1)
                #以:为界,分成元组,进行1次操作
                if role =='小甲鱼': #根据名称(前三个字符)不同分别记入两个列表
                  boy.append(line_spoken)
                if role =='小客服':
                  girl.append(line_spoken)
                  #到这一步,所有对话均被存入两列表
            else:#不是分割线的情况下,写入
                save_file(boy,girl,count) #调用写入,写入后清空列表,等待下次添加对话内容
               
                boy=[]
                girl=[]
                count+=1   #count从2到3时跳出循环,所以文件里计数器count为3的那一对文件就缺少了
            
      save_file(boy,girl,count)#第三段内容(上方for循环漏掉一次写入)
      f.close()   
      
spilt_file('E:/test.txt')   

胖胖的小阿涵 发表于 2021-1-3 22:02:39

昨非 发表于 2021-1-3 21:45


def save_file(boy,girl,count):
   
      file_name_boy='boy_'+str(count)+'.txt'
      file_name_girl='girl_'+str(count)+'.txt'

      boy_file=open(file_name_boy,'w')
      girl_file=open(file_name_girl,'w')

      boy_file.writelines(boy)
      girl_file.writelines(girl)

      boy_file.close()
      girl_file.close()
def split_file(file_name):
   
    f=open(file_name,'r',encoding='UTF-8')
    boy=[]
    girl=[]
    count=1
    for each_line in f:
      if each_line[:6]!='======':
            (role,line_spoken)=each_line.split(':',1)
            if role=='小甲鱼':
                boy.append(line_spoken)
            if role=='小客服':
                girl.append(line_spoken)
            else:
                save_file(boy,girl,count)
                boy=[]
                girl=[]
                count+=1

    save_file(boy,girl,count)
    f.close()

split_file('test.txt')
还是没有啊{:10_243:}

昨非 发表于 2021-1-3 22:06:46

胖胖的小阿涵 发表于 2021-1-3 22:02
def save_file(boy,girl,count):
   
      file_name_boy='boy_'+str(count)+'.txt'


有报错吗,有的话发一下,还有你的txt文件的位置

胖胖的小阿涵 发表于 2021-1-4 11:19:55

昨非 发表于 2021-1-3 22:06
有报错吗,有的话发一下,还有你的txt文件的位置

没报错E:\桌面\Python\test1
不知道为什么我这个还没保存上我的代码

昨非 发表于 2021-1-4 11:20:47

胖胖的小阿涵 发表于 2021-1-4 11:19
没报错E:\桌面\Python\test1
不知道为什么我这个还没保存上我的代码

你得把你的文件路径填对啊

昨非 发表于 2021-1-4 11:22:23

再不行就直接放到.py文件的相同位置,然后调用的时候直接写txt文件名就好了

胖胖的小阿涵 发表于 2021-1-4 11:22:36

昨非 发表于 2021-1-4 11:20
你得把你的文件路径填对啊

他这个不是直接输入文件名不就行吗?

昨非 发表于 2021-1-4 11:24:07

胖胖的小阿涵 发表于 2021-1-4 11:22
他这个不是直接输入文件名不就行吗?

要加路径的啊

胖胖的小阿涵 发表于 2021-1-4 11:25:48

昨非 发表于 2021-1-4 11:24
要加路径的啊

我看小甲鱼的视频上也没写路径啊,我去试试吧

胖胖的小阿涵 发表于 2021-1-4 11:31:44

胖胖的小阿涵 发表于 2021-1-4 11:25
我看小甲鱼的视频上也没写路径啊,我去试试吧

改完了还是没有{:10_243:}

胖胖的小阿涵 发表于 2021-1-4 12:15:10

本帖最后由 胖胖的小阿涵 于 2021-1-4 12:17 编辑

退出就显示这个图

昨非 发表于 2021-1-4 13:29:56

你得去你.py文件下的目录找分出来的文件

昨非 发表于 2021-1-4 13:30:42

你都没弄明白怎么回事。。。

胖胖的小阿涵 发表于 2021-1-4 13:43:19

本帖最后由 胖胖的小阿涵 于 2021-1-4 13:48 编辑

昨非 发表于 2021-1-4 13:30
你都没弄明白怎么回事。。。

咋找啊{:10_266:}

昨非 发表于 2021-1-4 13:45:57

胖胖的小阿涵 发表于 2021-1-4 13:43
咋找啊

你的这个代码文件在哪儿,你的保存位置就在那儿

胖胖的小阿涵 发表于 2021-1-4 13:50:18

昨非 发表于 2021-1-4 13:45
你的这个代码文件在哪儿,你的保存位置就在那儿

对啊那位置不就是我输的那个吗

昨非 发表于 2021-1-4 13:52:23

这样吧,你把你的test.txt放到代码所在的文件夹下
然后把代码最后一行改成
split_file('test.txt')
这样,分割出来的东西就会在这个文件夹下了

昨非 发表于 2021-1-4 13:53:51

就像这样
页: [1] 2
查看完整版本: 我明明照着小甲鱼的程序写的为什么就是出不来那三个文本文件呢