python3 split( ) not enough values to unpack(expceted 2, got 1)
在运行一个小脚本时,脚本从一文本文件读取数据,事实上这个文件只有一行'count:2',并取到这个2,将其转成数字。但运行,总是报错。
代码如下:
with open('count.txt', 'r') as file:
if not file.readline():
pass
else:
name, count = file.readline().split(':')
count = int(count)
code
错误信息如下:
'''
Traceback (most recent call last):
File "C:\Users\Andy\Desktop\split_error.py", line 6, in <module>
count = int(count)
#ValueError: invalid literal for int() with base 10: ''
'''
由此可以看出count为空。但是明显有内容,怎么会是空呢?于是注释到count = int(count)这行,再次运行,又出错了
错误信息如下:
'''
Traceback (most recent call last):
File "C:\Users\Andy\Desktop\split_error.py", line 5, in <module>
name, count = file.readline().split(':')
ValueError: not enough values to unpack (expected 2, got 1)
'''
说是没有给足够的值来解包,应该有两个,只给了一个。这就奇怪了,还是不明白原因。
于是shell里面试了下,终于找到原因:
当打开文件时,比如对一个文件执行了:readlines() 或者 readline() 那么文件的当前位置偏移就会改变,readlines()是偏移到文件结尾,而readlin()偏移到下一行.
(本脚本是因为执行if时,已经执行了readlines(),不成立,又执行else中的readlin())
所以,当这里第二次调用readlines()或者readlin()时,
已经到了文件结尾,读取到的内容为空,所以对空内容取split(':')方法时,当然报错。
因此,这里的最好的解决方法就是在第一次读之前将文件偏移回文件头
方法如下:file.seek(0)
再次读取,一切正常!
python3 split( ) not enough values to unpack(expceted 2, got 1)的更多相关文章
- libsvm easy.py ValueError: need more than 0 values to unpack windows下终极解决
现象是: python easy.py train test 输出: Scaling training data...WARNING: original #nonzeros 100389 new #n ...
- ValueError: not enough values to unpack (expected 2, got 1)
在python中使用字符串分片时遇到这个问题 [ValueError: not enough values to unpack (expected 2, got 1)] --------------& ...
- SQLAlchemy 做migration的时候 ValueError: too many values to unpack
我在做数据库迁移的时候,使用sqlalchemy,出现一个问题 Traceback (most recent call last): File "/Volumes/Spano/Dropbox ...
- 系统出现异常: too many values to unpack (expected 2)
先感谢[ValueError: too many values to unpack](http://leonzhan.iteye.com/blog/1720315)系统出现异常:打开太多值(预期2)这 ...
- ValueError: too many values to unpack (expected 2)
记录下总是码错的地方 for key,value in final_table:#final_table is a dict 然后报错 File "./count_co_Mty_read_n ...
- ValueError: too many values to unpack
Error msg: 执行: python manage,py makemigrations 报错:Value: too many values to unpack 问题: django第一次数据库迁 ...
- BUG——Celery ValueError: not enough values to unpack
背景 最近因项目需要,学习任务队列Celery的用法,跟着官网写Demo,出现如题错误,最终在github的Issues里找到解决办法,记录如下. 场景还原 本地环境如下: Windows 7 Pyt ...
- Celery 在Windows下启动worker时出现错误:ValueError: not enough values to unpack (expected 3, got 0)
在公司Linux环境下没有出现问题,在回到家后直接在Windows10下运行出现错误: ValueError: not enough values to unpack (expected 3, got ...
- ValueError: too many values to unpack tensorflow
使用tensorflow 的时候报错: result ,_= sess.run(ops)ValueError: too many values to unpack 其实是ops里面不止一个,返回解压成 ...
随机推荐
- HDP2.4安装(五):集群及组件安装
HDP(Hortonworks Data Platform)是hortworks推出的100%开源的hadoop发行版本,以YARN 作为其架构中心,包含pig.hive.phoniex.hbase. ...
- Call to undefined function bcscale()
参考官方文档发现zabbix需要bcmath函数库的支持,其中bcscale()就是该函数库中的函数之一. 因此,现在只需要让php支持bcmath即可. yum -y install php-bcm ...
- [原]一个简单的Linux TCP Client所涉及到的头文件
今天在Linux环境下写了一个最简单的TCP Client程序,没想到Linux环境下的头文件竟然这么分散,让我这样的菜鸟很是郁闷啊.编译成功的代码如下: #include <iostream& ...
- 【linux】find命令详解
find命令格式:find [搜索范围][匹配条件] -name 参数:按照名字查找 [root@andon ~]# find /root -name test ###精确查找 /root/test ...
- [转]使用eclipse+pydev远程调试OpenStack
作者:张华 发表于:2014-01-17版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.csdn.net/quqi99 ) 1, ...
- 发送WIN+SAPCE键,WINDOWS,空格键
键盘代码部份转自:http://www.cnblogs.com/cpcpc/archive/2011/02/22/2123055.html 由于喜欢用CTRL+空格键切换输入法,在WIN8上有所不习惯 ...
- bzoj2178: 圆的面积并
Description 给出N个圆,求其面积并 Input 先给一个数字N ,N< = 1000 接下来是N行是圆的圆心,半径,其绝对值均为小于1000的整数 Output 面积并,保留三位小数 ...
- 查询SQLServer 服务器,执行过的SQL语句耗时!
SELECT creation_time N'语句编译时间',last_execution_time N'上次执行时间',total_physical_reads N'物理读取总次数',total_l ...
- C语言每日一题之No.6
人总要战胜内心的懦弱的,我不能一直这么缩在里边.终究向自己发出了挑战,还是会伤心的时候,发愣的时候.如果可以,我也希望像盗梦空间的女主一直沉在两个人的梦里永远不要醒来.可是,我们谁又能抗拒时间呢?这雨 ...
- 如何巧用.htaccess设置网站的压缩与缓存
<IfModule mod_expires.c> ExpiresActive On ExpiresDefault A86400 ExpiresByType image/gif A25920 ...