解码ASCII二进制

3

我尝试了下面的代码,运行后只打印出一个空格。有人能指出我的错误或者提供修复方法吗?

file1 = open("Binaryfile.bin","wb+")
v = bytes("Hello World","ascii")
file1.write(v)
v = file1.read()
v = v.decode('ascii')
print(v)
file1.close()

2
你没有将文件光标回到起始位置。在写入后,光标会指向文件末尾。请使用seek()函数。 - Klaus D.
1个回答

4

在写入操作之后,文件中的位置仍然位于刚刚写入的字节的末尾。因此,当您立即调用read时,您将从文件末尾读取,直到文件结束。因此,您将读取(并打印)一个空字符串。

file1 = open("Binaryfile.bin","wb+")
v = bytes("Hello World","ascii")
file1.write(v)
file1.seek(0)   # <--- rewind file!
v = file1.read()
v = v.decode('ascii')
print(v)
file1.close()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接