将所有第四个字节组合在一

时间:2016-12-21 19:27:48

标签: python

def readFile(filename):
    filename= open("filename.txt", 'r')
    readIt= filename.read(4)
    return readIt

当我调用上面的函数时,它从文本文件中读取四个字符。 但是我想让它读完整个文件并将第一,第二,第三和第四组合在一起,第五,第六,第七,第八等等

我尝试使用“打开”,但我坚持这个。 对此很新。投入赞赏

3 个答案:

答案 0 :(得分:0)

在标题中你说字节,但在你的问题中它是字符。假设它的角色尝试做

with open(filename) as f:
    content=f.read() #now it's all in memory
    groups = [ content[i:i+4] for i in range(0,len(content),4) ]

对于更高级和迭代的解决方案,假设您构建了一个包含内容的列表,请查看此post

答案 1 :(得分:0)

您无法在每次通话时重新打开该文件。如果你真的需要这样做一系列的调用,每个调用返回一个4个字符的块,然后尝试这样的事情:

def readFile(filename):
    return filename.read(4)

file_ptr = open("filename.txt", 'r')
while <your ending condition>:
    four_chars = readFile(file_ptr)

答案 2 :(得分:0)

我假设您的文件名为input_file

因此,要从您的文件中读取bytes,您需要以rb模式打开文件。然后你可以按照下面的例子:

INPUT_FILE:

hello there how are you ?

我的例子:

def read_bytes(fobj = "", byte = 0):
    with open(fobj, 'rb') as f:
        data = f.read()
        return [data[n:n+byte] for n in range(0, len(data), byte)]

输出:

print(read_bytes("input_file", 4)
>>> [b'hell', b'o th', b'ere ', b'how ', b'are ', b'you ', b'?\n']