鱼C论坛

 找回密码
 立即注册
查看: 1638|回复: 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
产生了文件名没有内容


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

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

使用道具 举报

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

楼主 建议你下次发代码的时候用代码格式吧。。。这样格式不大好看
为啥没有内容输出,因为你的save_file函数里面的缩进有问题。。。
  1. def save_file(boy,girl,count):
  2.     file_name_boy = 'boy_' +str(count)+'.txt'
  3.     file_name_girl = 'girl' +str(count)+'.txt'
  4.     boy_file = open(file_name_boy,'w')
  5.     girl_file= open(file_name_girl,'w')
  6.     boy_file.writelines(boy)
  7.     girl_file.writelines(girl)
  8.     boy_file.close()
  9.     girl_file.close()
  10.       
  11. def slipt_file(file_name):        
  12.     f = open('c:/Users/asus/Desktop/record1.txt')   
  13.     boy = []                        
  14.     girl = []                        
  15.     count = 1
  16.     for each_line in f:              
  17.         if each_line[:6] != '======':   
  18.             (role,line_spoken)= each_line.split(':',1)
  19.             if role == '男':
  20.                 boy.append(line_spoken)
  21.             if role == '女':               
  22.                 girl.append(line_spoken)
  23.         else:                             
  24.             save_file(boy,girl,count)
  25.             boy=[]
  26.             girl=[]
  27.             count+=1
  28.            
  29.     save_file(boy,girl,count)
  30.     f.close()
  31. 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-4-28 11:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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