鱼C论坛

 找回密码
 立即注册
查看: 1706|回复: 11

文件切分

[复制链接]
发表于 2017-11-22 15:16:21 | 显示全部楼层 |阅读模式

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

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

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 slipt_file(file_name):        
    f = open('e:\\1.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()
slipt_file('1.txt')

结果是没有数据 不报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-11-22 15:17:00 | 显示全部楼层
各位大神么 帮忙看一看怎么回事 那里出错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-22 15:25:46 | 显示全部楼层
看下你的原始文本内容,是否每行有男女。或者====分割符号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-22 15:49:22 | 显示全部楼层
阿撩 发表于 2017-11-22 15:25
看下你的原始文本内容,是否每行有男女。或者====分割符号

男:折戟沉沙铁未销,自将磨洗认前朝。
女:东风不与周郎便,铜雀春深锁二乔。
=================================
男:多情却似总无情,唯觉樽前笑不成。
女:蜡烛有心还惜别,替人垂泪到天明。
==================================
男:冰簟银床梦不成,碧天如水夜云轻。
女:雁声远过潇湘去,十二楼中月自明。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-22 16:32:54 | 显示全部楼层
七喜. 发表于 2017-11-22 15:49
男:折戟沉沙铁未销,自将磨洗认前朝。
女:东风不与周郎便,铜雀春深锁二乔。
======================== ...

没有数据是指,产生了文件名没有内容还是没有文件产生? 如果是第二种你看下你python工作的当前目录里有没有文件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-22 16:41:10 | 显示全部楼层
阿撩 发表于 2017-11-22 16:32
没有数据是指,产生了文件名没有内容还是没有文件产生? 如果是第二种你看下你python工作的当前目录里有 ...

产生了文件名没有内容
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-22 21:11:43 | 显示全部楼层
本帖最后由 yjsx86 于 2017-11-22 21:13 编辑
七喜. 发表于 2017-11-22 16:41
产生了文件名没有内容


我把你的代码 带入 我的环境里 运行正常
文件 也有 内容 也有
我把你的代码稍微改了下 使调理更加清晰一点
def slipt_file(file_name):        
    with open(file_name, encoding='utf-8') as f_in:
        count_male = 0                     
        count_female = 0
        text = f_in.readlines()
        for string in text:
            if string[0] == '男':
                count_male += 1
                out_file_name = 'boy_' +str(count_male)+'.txt'
                with open(out_file_name, 'w', encoding='utf-8') as f_out:
                    f_out.write(string[2:])
            elif string[0] == '女':
                count_female += 1
                out_file_name = 'girl_' +str(count_female)+'.txt'
                with open(out_file_name, 'w', encoding='utf-8') as f_out:
                    f_out.write(string[2:])
            else:
                pass

slipt_file('1.txt')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-22 21:25:45 | 显示全部楼层
七喜. 发表于 2017-11-22 16:41
产生了文件名没有内容

楼主 建议你下次发代码的时候用代码格式吧。。。这样格式不大好看
为啥没有内容输出,因为你的save_file函数里面的缩进有问题。。。
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 slipt_file(file_name):        
    f = open('c:/Users/asus/Desktop/record1.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()
slipt_file('1.txt')
改一下就好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-23 09:03:55 | 显示全部楼层
阿撩 发表于 2017-11-22 21:25
楼主 建议你下次发代码的时候用代码格式吧。。。这样格式不大好看
为啥没有内容输出,因为你的save_file ...

谢谢 了 !!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-23 12:16:45 | 显示全部楼层

记得采纳最佳呀~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-23 16:20:49 | 显示全部楼层

不出数据能不能是我的版本的问题,我用小甲鱼源代码运行之后也是产生文件确不产生内容 还是我丢失了什么文件???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-23 16:21:25 | 显示全部楼层
阿撩 发表于 2017-11-23 12:16
记得采纳最佳呀~

不出数据能不能是我的版本的问题,我用小甲鱼源代码运行之后也是产生文件确不产生内容 还是我丢失了什么文件???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 08:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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