Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我得到这个错误值错误:没有足够的值来解包(预期为2,得到1)_Python_Dataset_Frames - Fatal编程技术网

Python 我得到这个错误值错误:没有足够的值来解包(预期为2,得到1)

Python 我得到这个错误值错误:没有足够的值来解包(预期为2,得到1),python,dataset,frames,Python,Dataset,Frames,Python 我正在尝试从UCF-101数据集中提取帧,但出现以下错误: ValueError:没有足够的值来解包(预期值为2,实际值为1)。 Iam使用Anaconda 1.7.2 此行显示参数错误:sequence\u type,sequence\u name=video\u path.split(“.avi”)[0]。split(“/”[-2:] 您对评论中的建议和问题的回答向我表明,该代码并非真正属于您,您不清楚这一行是什么 sequence_type, sequence_name =

Python

我正在尝试从UCF-101数据集中提取帧,但出现以下错误: ValueError:没有足够的值来解包(预期值为2,实际值为1)。 Iam使用Anaconda 1.7.2

此行显示参数错误:sequence\u type,sequence\u name=video\u path.split(“.avi”)[0]。split(“/”[-2:]


您对评论中的建议和问题的回答向我表明,该代码并非真正属于您,您不清楚这一行是什么

sequence_type, sequence_name = video_path.split(".avi")[0].split("/")[-2:]
应该这样做。让我解释一下。它采用
video\u路径
,这是指向
.avi
文件的完整路径,例如
“~/folder/subfolder/subsubfolder/myfile.avi”
。它分离了扩展名
.avi
,并从剩下的部分,即
~/folder/subfolder/subsubfolder/myfile'
,它接受最后两个元素,即
subsubsubfolder
myfile
,并将它们用作
序列类型
序列名称
的值

但要使其工作,
视频路径
必须同时包含
子文件夹
我的文件
,两者之间必须有一个斜杠,因此,至少,
'subsubsubfolder/myfile.avi'

glob.glob()
返回的一个路径名甚至不包含一个
/
字符。这就是为什么
split(“/”
返回一个1-list,它不足以解压到2元组
(sequence\u type,sequence\u name)
,导致没有足够的值解压的错误

我想到这可能发生的唯一原因是您正在使用路径分隔符为\not/的窗口。这意味着您的代码从
glob.glob()
返回的路径名类似于
'C:\Users\folder\subfolder\subsubsubfolder\myfile.avi'
。没有斜杠:没有斜杠,因为Windows文件名不能包含斜杠

这就是为什么评论者要求你向我们展示你试图挖掘的价值,而不是仅仅告诉我们。编程问题通常与一些微小的具体细节有关。因此,在你没有明确回答的情况下,这仍然只是一个猜测,但是如果猜测是正确的,那么给出错误的那一行应该是正确的

sequence_type, sequence_name = video_path.split(".avi")[0].split("\\")[-2:]
(注意,必须将反斜杠加倍)或者,如果希望代码独立于平台

sequence_type, sequence_name = video_path.split(".avi")[0].split(os.path.sep)[-2:]

在出现错误之前打印
video\u path
,然后我们将看到问题所在。打印出
video\u path.split(.avi”)[0]。split(“/”[-2:]
在尝试将其分配给2元组之前,您将看到为什么您没有足够的值来解包。@JustinEzequiel它显示数据集中包含的所有路径folder@BoarGules它显示不带.avi扩展名的视频路径该部分
.split(“/”[-2://code>最多返回两个字符串;注“最多”。由于您没有显示
video\u path
在错误点的值,我只能指出
[-2:]
切片为您提供了一个仅由一个字符串组成的列表,而不是您所期望的两个字符串。可能
video\u path
不包含前斜杠。对于解释良好且独立于平台的解决方案,为+1。我一定会记住这一点,以便将来实施
sequence_type, sequence_name = video_path.split(".avi")[0].split(os.path.sep)[-2:]