2024-05-16 23:11:55 发布
网友
我想以文本模式逐行读取一个文件,但同时我想插入一个中间步骤,它处理字节数据,基本上统计到目前为止读取的字节数。在
在标准库中有没有一种好的方法来实现这一点(无需在字节模式下手动打开、搜索换行、编码等)?最后我需要一个文本读取对象(在CSV阅读器中使用),它还具有一个字节计数器。在
csv模块使用python2中的二进制文件,因此您只需调用file.tell()方法来获得文件中当前的字节偏移量。在
csv
file.tell()
您不能使用text_file.tell()(TextIOBase实例),它被记录为返回一个可能与实际字节位置不符的不透明数字。在
text_file.tell()
TextIOBase
如果您的用例可以接受以±bufsize精度获得字节偏移量,那么:
file = open(filename, 'rb') # open in binary mode text_file = io.TextIOWrapper(file, newline='') # text mode # pass text_file to csv module byte_offset = file.tell() # get position ± buffering
Python 2
csv
模块使用python2中的二进制文件,因此您只需调用file.tell()
方法来获得文件中当前的字节偏移量。在Python 3
您不能使用
text_file.tell()
(TextIOBase
实例),它被记录为返回一个可能与实际字节位置不符的不透明数字。在如果您的用例可以接受以±bufsize精度获得字节偏移量,那么:
相关问题 更多 >
编程相关推荐