|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
为啥差不多的代码。我报错了,很不解- zhu = []
- qu = []
- 计数器=1
- f=open("C:\\Users\98677\Desktop\Python\文件\分割\相声剧本.txt","r",encoding="utf-8")
- for each_line in f:
- if each_line[:6] !="======":
- (role,line_spoken)=str(each_line).split(":",1)
- if role=="朱":
- zhu.append(line_spoken)
- if role=="曲":
- qu.append(line_spoken)
- else:
- file_name_zhu="zhu"+str(计数器)+".txt"
- file_name_qu="qu"+str(计数器)+".txt"
- f1=open("C:\\Users\98677\Desktop\Python\文件\分割""""+str(file_name_zhu),"w")
- f1.write(qu[:])
- f2=open("C:\\Users\98677\Desktop\Python\文件\分割""""+str(file_name_qu),"w")
- f2.write(qu[:])
-
- zhu=[]
- qu=[]
- 计数器=[]
- f1.close()
- f2.close()
-
- f.close()
-
复制代码
错误是
C:\Users\98677\AppData\Local\Programs\Python\Python39\python.exe C:/Users/98677/Desktop/Python/文件/分割/分割跟着做.py
Traceback (most recent call last):
File "C:\Users\98677\Desktop\Python\文件\分割\分割跟着做.py", line 7, in <module>
(role,line_spoken)=str(each_line).split(":",1)
ValueError: not enough values to unpack (expected 2, got 1)
Process finished with exit code 1
你的 txt 文本内容中,有空行、标点符号混用、有英文的冒号、中文的冒号、还有把冒号打成分号的...
这样都导致你 split(":",1) 过程报错,因为这里要对循环到某行的对话进行切割,而且是英文冒号进行切割一次
简单理解,split 中没有 : 英文冒号都会导致这里报错,英文 split 切割若没有切割到对应字符,那么返回的就是一个原字符串列表
而你对其进行两个变量接收单元素列表,会导致元素不够分给两个变量而报错(Ps:所以这里:(朱四处转 ...... 朱,停下了) 这段也删去了)
所以你文本内容首先要改改:
- 朱:谢谢。谢谢,谢谢朋友们的热情掌声。
- 曲:是。
- 朱:昨天我刚看了一本书。
- 曲:什么?
- 朱:《红岩》。
- 曲:好书好书。
- 朱:这本书的作者是罗金保和杨艺璇——
- ===================================================================================
- 曲:您等等吧,罗金宝人那是小兵张嘎里头的.
- 朱:别的艺术行业,你也涉及吗?
- 曲:就别的艺术形式,那看您问什么了。
- 朱:好,那我问问你。
- 曲:问吧。
- 朱:比如说话剧了解吗?
- 曲:话剧,爱看呀,北京人艺。
- 朱:戏曲呢?
- 曲:戏曲更爱听了
- 朱:鬼故事你会讲吗?
- 曲:(突然回过神来)不是,孙子你要聊哪个呀?
- 朱:老师,这就别拍了啊。
- 曲:不是你要聊什么呀?
- 朱:骂什么街呀。
- 曲:您会唱京剧吗?
- 朱:那是当然
- 曲:那个戏叫什么,叫《窦公训女》,您行吗这个?
- 朱:我行我行我专业。
- 曲:我没问你专业,就这出戏您知道吗?
- 朱:我知道。
- 曲:剧情。
- 朱:还有剧情哪?
- 曲:您净看这没剧情的了。
- 朱:行,那你给说说。
- 曲:我说说。我知道多少说多少。哪不对您给我补充行吗?
- ===================================================================================
- 朱:行。
- 曲:这个戏发生在这个五代残唐的时候,有个落魄的将军叫高怀德,找自己的好朋友窦燕山,借了200两纹银干什么呢,给自己义子高彤上关外做买卖。
- 朱:(发觉到了曲)说你的,没事。
- 曲:不是,您能认真听会吗?
- 朱:(跑到老师那)老师,你那是5s吗?是不是5s,你给我看看。
- 曲:我这没说——
- 朱:(没等曲说完)是5s,因为它这有一圈,你知道吗。照相呢,照相呢。
- 曲:谁跟你照。
- 朱:咱俩好不容易合作一回,唱一回。
- 曲:是合作,你还知道啊,我这给人讲剧情呢知道吗?
- 朱:咱不是说鬼故事吗?
- 曲:谁跟你说鬼故事了?咱这不唱戏吗?
- 朱:改唱戏了?
- 曲:压根就说唱戏,我这不是介绍剧情吗?
- 朱:那咱来唱《全德报》。
- 曲:对对对。千金全德报,对不对?
- 朱:。。。
复制代码
代码也蛮多错误的地方,都帮你改了改,参考参考吧:
- zhu = []
- qu = []
- 计数器 = 1
- f = open("C:\\Users\98677\Desktop\Python\文件\分割\相声剧本.txt", "r", encoding="utf-8")
- for each_line in f:
- if each_line[:6] != "======":
- (role, line_spoken) = each_line.split(":", 1)
- if role == "朱":
- zhu.append(line_spoken)
- if role == "曲":
- qu.append(line_spoken)
- else:
- file_name_zhu = "zhu" + str(计数器) + ".txt"
- file_name_qu = "qu" + str(计数器) + ".txt"
- f1 = open(file_name_zhu,"w", encoding="utf-8")
- f1.writelines(zhu)
- f2 = open(file_name_qu, "w", encoding="utf-8")
- f2.writelines(qu)
- zhu = []
- qu = []
- 计数器 += 1
- f1.close()
- f2.close()
- file_name_zhu = "zhu" + str(计数器) + ".txt"
- file_name_qu = "qu" + str(计数器) + ".txt"
- f1 = open(file_name_zhu,"w", encoding="utf-8")
- f1.writelines(zhu)
- f2 = open(file_name_qu, "w", encoding="utf-8")
- f2.writelines(qu)
- f1.close()
- f2.close()
- f.close()
复制代码
|
|