【问题标题】:ValueError: not enough values to unpack (expected 3, got 1) [duplicate]ValueError:没有足够的值来解包(预期 3,得到 1)[重复]
【发布时间】:2016-10-04 19:40:58
【问题描述】:

我正在尝试将 txt 文件读入 python 并收到上述错误。我想将每一行转换为 3 列。 文本文件如下所示 -

1714,Sales,Math
10070,Research,Science
1704,Developer,History
32696,QA,Math
16421,Marketing,Science
25925,Sales,History

我的代码如下所示:

    import pandas as pd 
a=open('/Users/mezbahuddin/Downloads/dept_course.txt')
b=a.read()
for line in b:
    g,h,i=line.strip().split(",",2)
    print(g[0],h[0],i[0])

任何帮助将不胜感激。谢谢

【问题讨论】:

  • 您是否在此站点上搜索过类似的错误消息?您是否尝试过打印中间值来验证您的假设是否正确?
  • 仔细看看g,h,i=line.strip().split(",",2)这一行。 strip().split(',', 2) 会返回什么?还说a=b.read() 并没有按照您的想法行事。
  • @BryanOakley 我做到了。这些帖子都没有提供明确的解决方案。
  • @Mr.goosberry 谢谢,我现在明白你在说什么了。

标签: python


【解决方案1】:
b=a.read()
for line in b:

b 不是行的集合。 b 是一个字符串。 for line in b: 将导致 line 逐个字符地遍历 b

要逐行遍历文件,请执行for line in a:

【讨论】:

  • 谢谢凯文。以下代码现在对我有用: a=open('/~dept_course.txt') b=a.readlines() for line in a: g,h,i=line.strip().split(",", 2)
猜你喜欢
  • 2019-02-08
  • 2021-04-11
  • 2016-04-10
  • 2016-07-05
  • 2020-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-14
相关资源
最近更新 更多