鱼C论坛

 找回密码
 立即注册
查看: 1718|回复: 26

[已解决]小白求教

[复制链接]
发表于 2022-3-22 14:12:53 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 ynoneone 于 2022-3-22 14:17 编辑

f = open('record.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:
        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)
        boy_file,writelines(girl)


        boy_file.close()
        girl_file.close()

        boy = []
        girl = []
        count +=1
        

f.close()   

哪里错了。求指教

Traceback (most recent call last):
  File "H:/python练习/006.py", line 11, in <module>
    (role,line_spoken) = each_line.split(':',1)
ValueError: not enough values to unpack (expected 2, got 1)


有报错了
最佳答案
2022-3-22 15:45:13
  1. f = open('record.txt')

  2. boy = []
  3. girl = []
  4. count = 1


  5. for each_line in f:
  6.     if each_line[:3] != '===':
  7.         (role, line_spoken) = each_line.split(':', 1)
  8.         if role == '甲':
  9.             boy.append(line_spoken)
  10.         if role == '乙':
  11.             girl.append(line_spoken)
  12.     else:
  13.         file_name_boy = '甲_' + str(count) + '.txt'
  14.         file_name_girl = '乙_' + str(count) + '.txt'

  15.         boy_file = open(file_name_boy, 'w')  # 小写
  16.         girl_file = open(file_name_girl, 'w')  # 小写

  17.         boy_file.writelines(boy)  # 不是 ,
  18.         girl_file.writelines(girl)  # 不是 还有这是 girl_file不是boy_file

  19.         boy_file.close()
  20.         girl_file.close()

  21.         boy = []
  22.         girl = []
  23.         count += 1

  24. # 因为最后没有 【=====】 所以还要再手动写入
  25. file_name_boy = '甲_' + str(count) + '.txt'
  26. file_name_girl = '乙_' + str(count) + '.txt'

  27. boy_file = open(file_name_boy, 'w')  # 小写
  28. girl_file = open(file_name_girl, 'w')  # 小写

  29. boy_file.writelines(boy)  # 不是 ,
  30. girl_file.writelines(girl)  # 不是 还有这是 girl_file不是boy_file

  31. boy_file.close()
  32. girl_file.close()

  33. f.close()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-3-22 14:22:53 From FishC Mobile | 显示全部楼层
全角冒号还是半角冒号的问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-22 14:25:44 | 显示全部楼层
if each_line[:6] != '======':   等号多了一个,改为6个
boy_file,writelines(boy)      这两行逗号改为“.”
boy_file,writelines(girl)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-22 14:33:15 | 显示全部楼层
specail 发表于 2022-3-22 14:25
if each_line[:6] != '======':   等号多了一个,改为6个
boy_file,writelines(boy)      这两行逗号改为 ...

看了。还是不行。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-22 14:50:08 | 显示全部楼层
  1. each_line.split(':',1)
复制代码

改成中文的冒号?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-22 14:56:21 | 显示全部楼层
大马强 发表于 2022-3-22 14:50
改成中文的冒号?

试了。还是不行。视频后面有优化版的。我写了一遍。还是一样的。还是这句话
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-22 15:02:16 | 显示全部楼层
ynoneone 发表于 2022-3-22 14:56
试了。还是不行。视频后面有优化版的。我写了一遍。还是一样的。还是这句话

发一下文本内容
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-22 15:18:58 | 显示全部楼层

甲:我来了!
乙:来了好啊,欢迎你!(握手)
甲:牛走了!
乙:牛……走了,这和你来有什么关系呢?
甲:它不走,我还来不了哩!
乙:这牛还挡着你的道呢?
甲:是啊,我今年编写的春联就是:牛唱凯歌满足去,我携冬奥乘兴来!
乙:应该是:“牛唱凯歌满足去,虎携冬奥乘兴来”吧?
===================================
甲:不错,我就是虎啊!
乙:你是虎?
甲:我属相虎,今年是我本命年!
乙:就这么个“虎”啊,要这样的话,咱俩在一块儿那可热闹了——一个蹦一个跳的。
甲:这怎么回事?
乙:我属相龙,你属相虎——龙腾虎跃啊!
甲:唉,你别说,用龙腾虎跃这个成语来形容今年冬奥会我国运动员的表现,再形象不过了!
乙:是吗?
甲:在中虎年冬奥会上,我国运动员生龙活虎,特别是男运动员,一个个虎背熊腰,比赛的时候更是如虎添翼、虎虎生威——就说2月12日下午国家速滑馆“冰丝带”这一幕吧(抓住乙的肩臂拉来拉去)。
乙:(挣扎着,抵抗着)你这是干吗呢?
===================================
甲:这不是一龙一虎——龙争虎斗嘛!
乙:哦,把咱俩的属相又用上了。
甲:经过一番龙争虎斗,我国冬奥代表团旗手高亭宇,在30位选手中脱颖而出,斩获中国代表团在该届冬奥会第四金——这也是自1980年中国首次参加冬奥会以来,赢得的第一枚速滑男子项目冬奥金牌——这可是42年的等待啊!
乙:高亭宇这“冰上飞人”可真不简单啊!
甲:是啊,在比赛当中,外国对手一个个是虎视眈眈,心的话:中国代表队可真是卧虎藏龙啊!比赛之后,说起来仍还谈虎色变呢,(伸拇指生硬地学说汉语)“中国人,了不起!”
乙:嗨,我发现你说话怎么带了这么多“虎”字呢?
甲:今年不是虎年么?
乙:虎年说话就要要带“虎”字?
甲:那当然了。下面无论你说什么话题,我的对答都带“虎”字。
乙:真的?
甲:不信你试试。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-22 15:21:46 | 显示全部楼层
你这问题有点多
一、 文件打开方式的 "w" 是小写
二、函数的调用要用 【.】 而不是 【,】

  1. count = 1
  2. boy_say = []
  3. girl_say = []
  4. fp = open(r'文件名', 'r', encoding='utf-8')

  5. for each_line in fp:
  6.     if each_line[:3] != '===':
  7.         (role, line_spoken) = each_line.split(':', 1)
  8.         if role == "小客服":
  9.             girl_say.append(line_spoken)
  10.         if role == "小甲鱼":
  11.             boy_say.append(line_spoken)
  12.     else:
  13.         file_name_boy = 'boy_'+str(count) + '.txt'
  14.         file_name_girl = 'girl_'+str(count) + '.txt'

  15.         boy_file = open(file_name_boy, 'w')
  16.         girl_file = open(file_name_girl, 'w')
  17.         boy_file.writelines(boy_say)
  18.         girl_file.writelines(girl_say)

  19.         boy_say = []
  20.         girl_say = []
  21.         count += 1

  22.         boy_file.close()
  23.         girl_file.close()
复制代码

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
python爱好者. + 5 + 5

查看全部评分

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

使用道具 举报

发表于 2022-3-22 15:28:00 | 显示全部楼层
我改了改你的代码,这样就可以了
  1. f = open(r'文件名.txt')

  2. boy = []
  3. girl = []
  4. count = 1


  5. for each_line in f:
  6.     if each_line[:3] != '===':
  7.         (role, line_spoken) = each_line.split(':', 1)
  8.         if role == '小甲鱼':
  9.             boy.append(line_spoken)
  10.         if role == '小客服':
  11.             girl.append(line_spoken)
  12.     else:
  13.         file_name_boy = 'boy_' + str(count) + '.txt'
  14.         file_name_girl = 'girl_' + str(count) + '.txt'

  15.         boy_file = open(file_name_boy, 'w')  # 小写
  16.         girl_file = open(file_name_girl, 'w')  # 小写

  17.         boy_file.writelines(boy)  # 不是 ,
  18.         boy_file.writelines(girl)  # 不是 ,

  19.         boy_file.close()
  20.         girl_file.close()

  21.         boy = []
  22.         girl = []
  23.         count += 1


  24. f.close()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-22 15:29:15 | 显示全部楼层
大马强 发表于 2022-3-22 15:21
你这问题有点多
一、 文件打开方式的 "w" 是小写
二、函数的调用要用 【.】 而不是 【,】

for each_line in fp:

这是多了一个P吧?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-22 15:30:43 | 显示全部楼层
ynoneone 发表于 2022-3-22 15:29
for each_line in fp:

这是多了一个P吧?

这个是变量名字,你去啥名字都好
我还以为是小甲鱼和客服的对话,稍等下我再改改
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-22 15:33:40 | 显示全部楼层
本帖最后由 ynoneone 于 2022-3-22 15:36 编辑
大马强 发表于 2022-3-22 15:30
这个是变量名字,你去啥名字都好
我还以为是小甲鱼和客服的对话,稍等下我再改改


上面我发了文本。那个文本没有问题吧?
还有,大哥。我还是小白。才看了三天视频。我是照着小甲鱼的视频写的。你帮我改了代码。但我还是不知道错在哪里。我现在需要帮忙的是。我照着他的写的。还是报错。我想知道错在什么地方
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-22 15:45:13 | 显示全部楼层    本楼为最佳答案   
  1. f = open('record.txt')

  2. boy = []
  3. girl = []
  4. count = 1


  5. for each_line in f:
  6.     if each_line[:3] != '===':
  7.         (role, line_spoken) = each_line.split(':', 1)
  8.         if role == '甲':
  9.             boy.append(line_spoken)
  10.         if role == '乙':
  11.             girl.append(line_spoken)
  12.     else:
  13.         file_name_boy = '甲_' + str(count) + '.txt'
  14.         file_name_girl = '乙_' + str(count) + '.txt'

  15.         boy_file = open(file_name_boy, 'w')  # 小写
  16.         girl_file = open(file_name_girl, 'w')  # 小写

  17.         boy_file.writelines(boy)  # 不是 ,
  18.         girl_file.writelines(girl)  # 不是 还有这是 girl_file不是boy_file

  19.         boy_file.close()
  20.         girl_file.close()

  21.         boy = []
  22.         girl = []
  23.         count += 1

  24. # 因为最后没有 【=====】 所以还要再手动写入
  25. file_name_boy = '甲_' + str(count) + '.txt'
  26. file_name_girl = '乙_' + str(count) + '.txt'

  27. boy_file = open(file_name_boy, 'w')  # 小写
  28. girl_file = open(file_name_girl, 'w')  # 小写

  29. boy_file.writelines(boy)  # 不是 ,
  30. girl_file.writelines(girl)  # 不是 还有这是 girl_file不是boy_file

  31. boy_file.close()
  32. girl_file.close()

  33. f.close()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-22 15:45:51 | 显示全部楼层
粗心呀鱼油
我也看了半天,你写了两个boyfile
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-22 15:48:20 | 显示全部楼层
ynoneone 发表于 2022-3-22 15:33
上面我发了文本。那个文本没有问题吧?
还有,大哥。我还是小白。才看了三天视频。我是照着小甲鱼的视 ...

你说是哪个视频我去看看,你这代码逻辑错误和拼写有点多,一句话就是太粗心了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-22 15:50:57 | 显示全部楼层
大马强 发表于 2022-3-22 15:48
你说是哪个视频我去看看,你这代码逻辑错误和拼写有点多,一句话就是太粗心了

https://www.ixigua.com/676949337 ... 8ffca36d0283126a298

小甲鱼。第30讲。数据分割保存
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-22 15:52:30 | 显示全部楼层
大马强 发表于 2022-3-22 15:48
你说是哪个视频我去看看,你这代码逻辑错误和拼写有点多,一句话就是太粗心了


小甲鱼三十课。数据分割保存。视频后面有一个优化版的。一样的报错。我一个字母一个字母对照了。就是不行。视频连接不让发。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-22 16:31:13 | 显示全部楼层
ynoneone 发表于 2022-3-22 15:52
小甲鱼三十课。数据分割保存。视频后面有一个优化版的。一样的报错。我一个字母一个字母对照了。就是不 ...

我再b站上看到的是 【文件一个任务】 30讲
我也不知道你是按照哪个代码来写了的,看你写的代码和分离小甲鱼和客服的代码差不多

而且你说你一个字母一个字母对照了,在你上面代码真的看不出来
我前面也有讲过,缩进错误,逻辑错误,拼写错误
你再好好看看吧

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

使用道具 举报

 楼主| 发表于 2022-3-22 16:51:29 | 显示全部楼层
大马强 发表于 2022-3-22 16:31
我再b站上看到的是 【文件一个任务】 30讲
我也不知道你是按照哪个代码来写了的,看你写的代码和分离小 ...

先搁置吧。回头再研究。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-29 13:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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