def readFile(filename):
filename= open("filename.txt", 'r')
readIt= filename.read(4)
return readIt
当我调用上面的函数时,它从文本文件中读取四个字符。 但是我想让它读完整个文件并将第一,第二,第三和第四组合在一起,第五,第六,第七,第八等等
我尝试使用“打开”,但我坚持这个。 对此很新。投入赞赏
答案 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']