您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python 2.7中的Open()和codecs.open()行为异常不同

Python 2.7中的Open()和codecs.open()行为异常不同

因为您.readline() 首先 使用,所以codecs.open()文件已填充了行缓冲区;随后的调用.readlines()返回缓冲的行。 __

如果.readlines() 再次 调用,则返回其余行:

>>> f = codecs.open(filename, 'r3', encoding='utf-8')
>>> line = f.readline()
>>> len(f.readlines())
7
>>> len(f.readlines())
71

解决方法是不要混合使用.readline().readlines()

f = codecs.open(filename, 'r3', encoding='utf-8')
data_f = f.readlines()
names_f = data_f.pop(0).split(' ')  # take the first line.

这种行为确实是一个错误。Python开发人员已意识到这一点,请参阅问题8260

另一种选择是使用io.open()代替codecs.open(); 该io库是Python 3用于实现内置open()功能的库,比该codecs模块更强大,更通用。

python 2022/1/1 18:25:42 有172人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶