0

嗨,我有兴趣从头到尾一次读取一个字节的文件。

这是我到目前为止所拥有的:

fileName = raw_input()
with open(fileName , "rb") as handler:
    while True:
        piece = handler.read(1)

        if piece =="":
            break
        print piece

我怎样才能改变它,以便我能够从头到尾以字节为单位读取文件?

4

2 回答 2

2

关于什么?

with open(fileName , "rb") as handler:
    size = handler.seek(0, 2) #2= SEEK_END
    while size > 0:
        size -= 1
        handler.seek(size)
        b = handler.read(1)
        print b
于 2013-04-10T18:46:53.437 回答
2

据我所知,这个问题有两种解决方案。

一方面,你可以使用tell and seek函数"

>>> fh = open("e:\\text.txt","rb")
>>> fh.seek(0,2)
>>> length = fh.tell()
>>> for i in range(length, 0, -1):
        fh.seek(i-1,0)
        char = fh.read(1)
        print(char)

另一方面,您可以读取所有内容(如果文件不是太大),然后从头到尾处理它:

>>> fh = open("e:\\text.txt","rb")
>>> fc = fh.read()
>>> fh.close()
>>> for i in range(len(fc),0,-1):
     print(fc[i-1])
于 2013-04-10T18:49:11.940 回答