Python 对文件read或open后不能再次读取---句柄的问题
一个不注意就会犯的错误,debug老半天,切记切记。
先是open
一个文件,注意这时的句柄已经从文件的开头跑到文件的末尾去了。
所以如果再次read
这个文件的话,会发现什么都没有,例子如下:
f = open('/home/20200725.txt','r')
Num = len(f.readlines())
print('1 Num:',Num)
Num = len(f.readlines())
print('2 Num:',Num)
输出:
1 Num: 9164
2 Num: 0
第二次读取就什么也读不到了,所以要把句柄重新放回文件的开头,加一个
f.seek(0)
就解决了,修改后的代码:f = open('/home/20200725.txt','r')
Num = len(f.readlines())
print('1 Num:',Num)
f.seek(0) # 把句柄重新放到文件开头
Num = len(f.readlines())
print('2 Num:',Num)
输出:
1 Num: 9164
2 Num: 9164
因为需要二次调用才用这种方法,最好就是第一次
read
文档的时候就把需要的操作都完成,别弄二次调用,一不小心就出问题了,而且debug的时候不容易发现,累个半死发现是小错误,要气死。【Python 对文件read或open后不能再次读取---句柄的问题】可以尝试心里默念:莫生气莫生气莫生气,动怒不利于护发,头发要紧头发要紧。
推荐阅读
- 布丽吉特,人生绝对的赢家
- 进必趋|进必趋 退必迟,问起对 视勿移
- 对称加密和非对称加密的区别
- python学习之|python学习之 实现QQ自动发送消息
- 对抗抑郁最好的方法
- 逻辑回归的理解与python示例
- 装聋作哑,关系融洽
- 社保代缴公司服务费包含哪些
- python自定义封装带颜色的logging模块
- django-前后端交互