f5520916 2023-08-30 10:18 采纳率: 40%
浏览 23
已结题

python错误提示ValueError: not enough values to unpack (expected 2, got 1)

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

  File "D:\11.py", line 141, in decode
    key, value = line.strip().split('=')

改了错错了再改,能帮忙看看这又要咋解决嘞

    def encode(self):
        # 读取文章
        with open(self.filepath_entry.get(), 'r') as f:
            article = f.read()

        # 统计字符出现次数,构造编码表,并对文章进行编码
        char_count = count_character(article)
        encoding_table = build_encoding_table(char_count)
        encoded_data = encode_article(article, encoding_table)

        # 将编码表和编码结果保存到文件中
        with open(self.char_count_path.get(), 'w') as f:
            for key, value in char_count.items():
                f.write(str(key) + ',' + str(value) + '\n')

        with open(self.encoding_table_path.get(), 'w') as f:
            for key, value in encoding_table.items():
                f.write(str(key) + ',' + str(value) + '\n')

        with open(self.encoded_data_path.get(), 'w') as f:
            for code in encoded_data:
                f.write(str(code) + ',')

        tk.messagebox.showinfo('LZW编码器', '编码完成。')

    def decode(self):
        # 从编码文件中读取编码表和编码结果,并使用词典解码得到原文章
        with open(self.encoding_table_path.get(), 'r') as f:
            encoding_table = {}
            for line in f.readlines():
                key, value = line.strip().split('=')
                encoding_table[key] = int(value)

        decoding_table = {v: k for k, v in encoding_table.items()}

        with open(self.encoded_data_path.get(), 'r') as f:
            encoded_data = list(map(int, f.read().split(',')[:-1]))

        decoded_article = decode_article(encoded_data, decoding_table)
  • 写回答

3条回答 默认 最新

  • kerlly_bigbig_bug 2023-08-30 10:31
    关注

    ValueError: not enough values to unpack (expected 2, got 1)
    key, value = line.strip().split('=')
    也就是会说line.strip().split('=')的结果没有两个值的,根据你的语句,应该是某一行不包含“=”号,指导split的结果只有一项。
    很大可能是你的文件里有空行(比如文尾是空行),你可以添加判断,只有len(line.strip().split('=')) == 2的时候再赋值给key, value

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月7日
  • 已采纳回答 8月30日
  • 创建了问题 8月30日

悬赏问题

  • ¥15 请各位帮我看看是哪里出了问题
  • ¥15 vs2019的js智能提示
  • ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
  • ¥15 uniapp的h5项目写一个抽奖动画
  • ¥15 hadoop中启动hive报错如下怎么解决
  • ¥15 如何优化QWebEngineView 加载url的速度
  • ¥15 关于#hadoop#的问题,请各位专家解答!
  • ¥15 如何批量抓取网站信息
  • ¥15 Spring Boot离线人脸识别
  • ¥15 使用Ant Design Pro vue的时候,使用环境变量的时候,构建报错是什么原因