|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 c870801 于 2019-8-18 10:51 编辑
仿照例子自己写了个初级程序,结果报错:程序如下
f=open("a.txt")
t=[]
s=[]
count=1
for each_line in f:
if each_line[:5]!="=====":
(role,speak)=each_line.split(":",1)
if role=="师":
t.append(speak)
if role=="生":
s.append(speak)
else:
file_name_t="t_"+str(count)+".txt"
file_name_s="s_"+str(count)+".txt"
t_file=open(file_name_t,'w')
s_file=open(file_name_s,'w')
t_file.writelines(t)
s_file.writelines(s)
t_file.close()
s_file.close()
t=[]
s=[]
count+=1
……
报错信息如下:
Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\新建文件夹\file.py", line 7, in <module>
(role,speak)=each_line.split(":",1)
ValueError: not enough values to unpack (expected 2, got 1)
这句到底有什么问题,我看着和小宇老师的例子一样啊?
附加:
for each_line in f:#这个为什么能实现一行一行的遍历呢,没明白?
你之前的报错的原因是,a.txt里有不带冒号的行,(role, line_spoken) = each_line.split(':',1)需要将each_line用冒号分割一次,变成两个字符串,然后分别赋值给role和line_spoken,由于不带冒号的行没法用冒号分割,所以只有一个值,所以程序报错说没有足够的值
|
|