马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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()
|