ynoneone 发表于 2022-3-22 14:12:53

小白求教

本帖最后由 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)

有报错了

wp231957 发表于 2022-3-22 14:22:53

全角冒号还是半角冒号的问题

specail 发表于 2022-3-22 14:25:44

if each_line[:6] != '======':   等号多了一个,改为6个
boy_file,writelines(boy)      这两行逗号改为“.”
boy_file,writelines(girl)

ynoneone 发表于 2022-3-22 14:33:15

specail 发表于 2022-3-22 14:25
if each_line[:6] != '======':   等号多了一个,改为6个
boy_file,writelines(boy)      这两行逗号改为 ...

看了。还是不行。

大马强 发表于 2022-3-22 14:50:08

each_line.split(':',1)
改成中文的冒号?

ynoneone 发表于 2022-3-22 14:56:21

大马强 发表于 2022-3-22 14:50
改成中文的冒号?

试了。还是不行。视频后面有优化版的。我写了一遍。还是一样的。还是这句话

大马强 发表于 2022-3-22 15:02:16

ynoneone 发表于 2022-3-22 14:56
试了。还是不行。视频后面有优化版的。我写了一遍。还是一样的。还是这句话

发一下文本内容

ynoneone 发表于 2022-3-22 15:18:58

大马强 发表于 2022-3-22 15:02
发一下文本内容

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

大马强 发表于 2022-3-22 15:21:46

你这问题有点多
一、 文件打开方式的 "w" 是小写
二、函数的调用要用 【.】 而不是 【,】

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

for each_line in fp:
    if each_line[:3] != '===':
      (role, line_spoken) = each_line.split(':', 1)
      if role == "小客服":
            girl_say.append(line_spoken)
      if role == "小甲鱼":
            boy_say.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_say)
      girl_file.writelines(girl_say)

      boy_say = []
      girl_say = []
      count += 1

      boy_file.close()
      girl_file.close()

大马强 发表于 2022-3-22 15:28:00

我改了改你的代码,这样就可以了
f = open(r'文件名.txt')

boy = []
girl = []
count = 1


for each_line in f:
    if each_line[:3] != '===':
      (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()

ynoneone 发表于 2022-3-22 15:29:15

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

for each_line in fp:

这是多了一个P吧?

大马强 发表于 2022-3-22 15:30:43

ynoneone 发表于 2022-3-22 15:29
for each_line in fp:

这是多了一个P吧?

这个是变量名字,你去啥名字都好
我还以为是小甲鱼和客服的对话,稍等下我再改改

ynoneone 发表于 2022-3-22 15:33:40

本帖最后由 ynoneone 于 2022-3-22 15:36 编辑

大马强 发表于 2022-3-22 15:30
这个是变量名字,你去啥名字都好
我还以为是小甲鱼和客服的对话,稍等下我再改改

上面我发了文本。那个文本没有问题吧?
还有,大哥。我还是小白。才看了三天视频。我是照着小甲鱼的视频写的。你帮我改了代码。但我还是不知道错在哪里。我现在需要帮忙的是。我照着他的写的。还是报错。我想知道错在什么地方

大马强 发表于 2022-3-22 15:45:13

f = open('record.txt')

boy = []
girl = []
count = 1


for each_line in f:
    if each_line[:3] != '===':
      (role, line_spoken) = each_line.split(':', 1)
      if role == '甲':
            boy.append(line_spoken)
      if role == '乙':
            girl.append(line_spoken)
    else:
      file_name_boy = '甲_' + str(count) + '.txt'
      file_name_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)# 不是 还有这是 girl_file不是boy_file

      boy_file.close()
      girl_file.close()

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

# 因为最后没有 【=====】 所以还要再手动写入
file_name_boy = '甲_' + str(count) + '.txt'
file_name_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)# 不是 还有这是 girl_file不是boy_file

boy_file.close()
girl_file.close()

f.close()

大马强 发表于 2022-3-22 15:45:51

粗心呀鱼油{:10_266:}
我也看了半天,你写了两个boyfile

大马强 发表于 2022-3-22 15:48:20

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

你说是哪个视频我去看看,你这代码逻辑错误和拼写有点多,一句话就是太粗心了

ynoneone 发表于 2022-3-22 15:50:57

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

https://www.ixigua.com/6769493379135832583?id=6770208374152757772&logTag=f8ffca36d0283126a298

小甲鱼。第30讲。数据分割保存

ynoneone 发表于 2022-3-22 15:52:30

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

小甲鱼三十课。数据分割保存。视频后面有一个优化版的。一样的报错。我一个字母一个字母对照了。就是不行。视频连接不让发。

大马强 发表于 2022-3-22 16:31:13

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

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

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

ynoneone 发表于 2022-3-22 16:51:29

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

先搁置吧。回头再研究。
页: [1] 2
查看完整版本: 小白求教