ValueError: not enough values to unpack (expected 2, got 1)

awaken_ 发布于 2017/02/09 16:18
阅读 2K+
收藏 0
def save_file(boy,girl,count):
    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)
    girl_file.writelines(girl)
    boy_file.close()
    girl_file.close()            #把两人的对话分别放到命名不同的文件里
def split_file(file_name):
    f = open('E:/test/dialogue.txt')
    boy=[]
    girl=[]
    count=1
    for each_line in f:
        if each_line[:6] != '======':
            (role,line_spoken) = each_line.split(':', 1)   #每行按照:分割成1+1个子字符串,分别赋值给=前面的对象
            if role == '小甲鱼':
                boy.append(line_spoken)
            if role == '小客服':
                girl.append(line_spoken)
        else:
            save_file(boy,girl,count)
            boy = []
            girl = []
            count += 1
    save_file(boy,girl,count)
    f.close()
split_file('E:/test/dialogue.txt')

E:\Python\python.exe "E:/PyCharm 2016.3.2/testest/abc/filelearn_01.py"
Traceback (most recent call last):
  File "E:/PyCharm 2016.3.2/testest/abc/filelearn_01.py", line 31, in <module>
    split_file('E:/test/dialogue.txt')
  File "E:/PyCharm 2016.3.2/testest/abc/filelearn_01.py", line 19, in split_file
    (role,line_spoken) = each_line.split(':', 1)   #每行按照:分割成1+1个子字符串,分别赋值给=前面的对象
ValueError: not enough values to unpack (expected 2, got 1)

Process finished with exit code 1
什么原因呢?要怎么修改代码呢?

http://edu.csdn.net/course/detail/906/12822?auto_start=1 是这个视频里的

以下是问题补充:

@awaken_:修改了冒号后 运行成功,但是没相应的文件生成 (2017/02/10 11:59)
加载中
0
a
awaken_

已经成功了 搜索关键字发现在工作环境里 

另外'e:\\test/dialogue.txt'  当前者//\\,后者可以//或\\或/或\;当前者/\,后者也只能单斜。


有兴趣的可以试试 并tell me why

0
Lin_R
Lin_R

 猜测应该是 each_line.split(':', 1)  返回的列表成员, 不足2个, 可以将each_line.split() 结果打印出来看下

0
a
awaken_

犯了一个低级错误,:应该一致 用英文的冒号,无报错了。但是文件夹下没出现像boy1 girl1这样的文件,难道是路径有问题?

返回顶部
顶部