【发布时间】:2017-04-06 17:15:58
【问题描述】:
我按照这个答案 (Python: Split by 1 or more occurrences of a delimiter) 的指示找到了一个 T,但它一直在失败,所以我想知道这是不是我遗漏了一些简单的东西,或者我是否需要一种新方法来解决这个问题。
我有以下 .eml 文件:
我的目标是最终解析出所有鱼类种群及其相应的重量,但我只是使用以下代码进行测试:
with open(file_path) as f:
for line in f:
if ("Haddock" in line):
#fish, remainder = re.split(" +", line)
fish, remainder = line.split()
print(line.lower().strip())
print("fish:", fish)
print("remainder:", remainder)
它在fish, remainder = line.split() 行失败并出现错误
ValueError: too many values to unpack (expected 2)
这告诉我 Python 失败了,因为它试图分割太多的空间,对吧?还是我对此有误解?我想从这个过程中得到两个值:鱼的名称(包含许多空格之前的所有文本的字符串)和数量(输入行右侧的整数)。
任何帮助将不胜感激。
【问题讨论】:
-
你是对的。
line.split()的结果是['GB', 'Haddock', 'West', '22572']当然不能解压成 2 个名称。 -
哦,好的。那么有没有办法直接回答链接用户的问题?我可以
split()专门连续几个空格吗? -
您能举例说明
fish和remainder是什么吗? -
对,我不是很清楚。在过去的案例(电子邮件)中,他们通常会列出鱼、重量和价格;所以第一个
split()会产生一个fish和一个remainder,然后我会split()remainder产生一个重量和价格。在这种情况下,我希望fish是GB Haddock West和remainder是22572。