鱼C论坛

 找回密码
 立即注册
查看: 1047|回复: 13

29课运行出错

[复制链接]
发表于 2019-3-26 13:51:15 | 显示全部楼层 |阅读模式

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

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

x
f=open('record.txt')
boy=[]
gir1=[]
count=1
for esch_lime in f:
    if esch_lime[:6]!='===':
    #我没这里进行字符串分割
        (role,line_spoken)=esch_lime.split(':',1)
        if role=='小甲鱼':
            boy.append(line_spoken)
        if role=='小客服':
            gir1.append(line_spoken)
    else:
    #文件分割文件保存操作
         file_name_boy='boy'+str(count)+'txt'
         file_name_gir1='gir1'+str(count)+'txt'

         boy_file=open(file_name_boy,'w')
         git1_file=open(file_name_gir1,'w')

         boy_file.writelines(boy)
         gir1.file.writelines(gir1)

         boy_file.close()
         gir1_file.close()
         boy=[]
         gir1=[]
         count+=1
f.closee()

出错:(role,line_spoken)=esch_lime.split(':',1)
ValueError: need more than 1 value to unpack
翻译:(角色,线路对话)=esch ou lime.split(“:”,1)
值错误:需要多个值才能解包
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-3-26 13:53:08 | 显示全部楼层
没有样板文件  没法测试啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-26 13:55:46 | 显示全部楼层
wp231957 发表于 2019-3-26 13:53
没有样板文件  没法测试啊

有啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-26 13:56:29 | 显示全部楼层

我是说我没有 f=open('record.txt')  这个文件
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-26 13:57:49 | 显示全部楼层
wp231957 发表于 2019-3-26 13:56
我是说我没有 f=open('record.txt')  这个文件

我有啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-26 14:38:11 | 显示全部楼层
本帖最后由 jackz007 于 2019-3-26 14:45 编辑

    问题语句:
  1. if esch_lime[:6]!='===':
  2. . . . . . .
  3. gir1.file.writelines(gir1)
  4. . . . . . .
  5. f.closee()
复制代码

       第1条语句错误导致对 '======. . . . . .' 行的判别出现错误,继而 split() 就出现了异常。
      还有代码缩进问题
  1.     #文件分割文件保存操作
  2.          file_name_boy='boy'+str(count)+'txt'
  3.          file_name_gir1='gir1'+str(count)+'txt'

  4.          boy_file=open(file_name_boy,'w')
  5.          git1_file=open(file_name_gir1,'w')

  6.          boy_file.writelines(boy)
  7.          gir1.file.writelines(gir1)

  8.          boy_file.close()
  9.          gir1_file.close()
  10.          boy=[]
  11.          gir1=[]
  12.          count+=1
复制代码

    代码缩进统统不对。
    我已经全部修改,下面是我修改过的代码:
  1. f = open('record.txt')
  2. boy = []
  3. gir1 = []
  4. count = 0
  5. for esch_lime in f:
  6.     if esch_lime[:3] != '===':
  7.     #我没这里进行字符串分割
  8.         role , line_spoken = esch_lime . split(':',1)
  9.         if role == '小甲鱼':
  10.             boy . append(line_spoken)
  11.         if role == '小客服':
  12.             gir1 . append(line_spoken)
  13.     else:
  14.     #文件分割文件保存操作
  15.         file_name_boy = 'boy' + str(count) + '.txt'
  16.         file_name_gir1 = 'gir1' + str(count) +'.txt'

  17.         boy_file = open(file_name_boy,'w')
  18.         gir1_file = open(file_name_gir1,'w')

  19.         boy_file . writelines(boy)
  20.         gir1_file . writelines(gir1)

  21.         boy_file.close()
  22.         gir1_file.close()
  23.         boy=[]
  24.         gir1=[]
  25.         count+=1
  26. f.close()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-26 14:39:15 | 显示全部楼层
本帖最后由 13572044595 于 2019-3-26 14:47 编辑

[b]从报错信息来看有以下几种可能:
1 -- 中英 符号 混用
2 -- 冒号(:) 缺少,或者 在元素两端
3 -- 存在换行[/b]

当然 也存在 楼上所说的
第一个 if 判断不成立,所以============ 也会进入 分割语句,
这样一来就会存在 我所说的 第 2 种情况,
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-26 14:50:53 | 显示全部楼层
jackz007 发表于 2019-3-26 14:38
问题语句:

       第1条语句错误导致对 '======. . . . . .' 行的判别出现错误,继而 split() 就出 ...

ValueError: not enough values to unpack (expected 2, got 1)
翻译L:alueError:值不足,无法解包(应为2,得到1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-26 14:53:21 | 显示全部楼层
20192019 发表于 2019-3-26 14:50
ValueError: not enough values to unpack (expected 2, got 1)
翻译L:alueError:值不足,无法解包(应 ...

我的代码:f=open('record.txt')
boy=[]
gir1=[]
count=1
for esch_line in f:
    if esch_line[:6]!='=====':
    #我没这里进行字符串分割
        (role, line_spoken)=esch_line.split(':',1)
        if role=='小甲鱼':
            boy.append(line_spoken)
        if role=='小客服':
            gir1.append(line_spoken)
    else:
    #文件分割文件保存操作
         file_name_boy='boy'+str(count)+'.txt'
         file_name_gir1='gir1'+str(count)+'.txt'

         boy_file=open(file_name_boy,'w')
         git1_file=open(file_name_gir1,'w')

         boy_file.writelines(boy)
         gir1.file.writelines(gir1)

         boy_file.close()
         gir1_file.close()
         boy=[]
         gir1=[]
         count+=1
f.close()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-26 15:00:21 | 显示全部楼层
      楼主为何如此钟情于数字 6 ?,而且是假的!
  1. if esch_line[:6]!='=====':
复制代码

      应该改成
  1. if esch_line[:6]!='======':
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-26 15:17:32 | 显示全部楼层
jackz007 发表于 2019-3-26 15:00
楼主为何如此钟情于数字 6 ?,而且是假的!

      应该改成

还是不行啊

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-26 15:19:07 | 显示全部楼层

ttributeError:“list”对象没有属性“file”
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-26 15:25:09 | 显示全部楼层
    楼主,你是一块石头吗,不是告诉你我的代码是对的了吗,怎么还在纠结你自己的代码?
    问题都给你指出了,下面的问题你改了吗?
  1. gir1.file.writelines(gir1)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-26 15:47:25 | 显示全部楼层
这个题就这样,有时候如果实在像7L说的那样找了,还是有错误,就跳过去吧。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-14 19:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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