鱼C论坛

 找回密码
 立即注册
查看: 2369|回复: 33

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

[复制链接]
发表于 2021-1-3 21:43:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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: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')   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-3 21:44:20 | 显示全部楼层
本帖最后由 昨非 于 2021-1-3 21:45 编辑

编码方式改一下
下面的第十七十八行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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')   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-3 22:02:39 | 显示全部楼层

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')
还是没有啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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文件的位置
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-4 11:19:55 | 显示全部楼层
昨非 发表于 2021-1-3 22:06
有报错吗,有的话发一下,还有你的txt文件的位置

没报错E:\桌面\Python\test1
不知道为什么我这个还没保存上我的代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

你得把你的文件路径填对啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-4 11:22:23 | 显示全部楼层
再不行就直接放到.py文件的相同位置,然后调用的时候直接写txt文件名就好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-4 11:22:36 | 显示全部楼层
昨非 发表于 2021-1-4 11:20
你得把你的文件路径填对啊

他这个不是直接输入文件名不就行吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-4 11:24:07 | 显示全部楼层
胖胖的小阿涵 发表于 2021-1-4 11:22
他这个不是直接输入文件名不就行吗?

要加路径的啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-4 11:25:48 | 显示全部楼层

我看小甲鱼的视频上也没写路径啊,我去试试吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-4 11:31:44 | 显示全部楼层
胖胖的小阿涵 发表于 2021-1-4 11:25
我看小甲鱼的视频上也没写路径啊,我去试试吧

改完了还是没有
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-4 12:15:10 | 显示全部楼层
本帖最后由 胖胖的小阿涵 于 2021-1-4 12:17 编辑

退出就显示这个图
1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-4 13:29:56 From FishC Mobile | 显示全部楼层
你得去你.py文件下的目录找分出来的文件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-4 13:30:42 From FishC Mobile | 显示全部楼层
你都没弄明白怎么回事。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-4 13:43:19 | 显示全部楼层
本帖最后由 胖胖的小阿涵 于 2021-1-4 13:48 编辑
昨非 发表于 2021-1-4 13:30
你都没弄明白怎么回事。。。


咋找啊
2.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-4 13:45:57 | 显示全部楼层

你的这个代码文件在哪儿,你的保存位置就在那儿
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-4 13:50:18 | 显示全部楼层
昨非 发表于 2021-1-4 13:45
你的这个代码文件在哪儿,你的保存位置就在那儿

对啊那位置不就是我输的那个吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-4 13:52:23 | 显示全部楼层
这样吧,你把你的test.txt放到代码所在的文件夹下
然后把代码最后一行改成
split_file('test.txt')
这样,分割出来的东西就会在这个文件夹下了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-4 13:53:51 | 显示全部楼层
就像这样
屏幕截图 2021-01-04 135321.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 21:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表