Python入门 - 二进制文件读写
常用操作
哪些是二进制文件?
图片,音频,视频等,这些都是二进制文件
写
f1 = open("test.bin", "wb") print(f1.name) # test.bin print(f1.closed) # False print(f1.mode) # wb print(f1.readable()) # False print(f1.writable()) # True print(f1.seekable()) # True f1.write(bytes("123abc中文", "utf-8")) print(f1.tell()) # 12 f1.close() # print(f1.writable()) # closed后调用会抛异常 # print(f1.seekable()) # closed后调用会抛异常
读
f1 = open("test.bin", "rb") print(f1.name) # test.bin print(f1.closed) # False print(f1.mode) # rb print(f1.readable()) # True print(f1.writable()) # False print(f1.seekable()) # True print(f1.tell()) # 0 # 读取3个byte print(f1.read(3)) # b'123' print(f1.read(3)) # b'abc' # 读取1个byte print(f1.read(1)) # b'\xe4' print(f1.read(1)) # b'\xb8' print(f1.read(1)) # b'\xad' print(f1.read(3)) # b'\xe6\x96\x87' # 移到到文件头 f1.seek(0, 0) # 读取所有字节 print(f1.read()) # b'123abc\xe4\xb8\xad\xe6\x96\x87' print(f1.tell()) # 12 f1.close()
文件大小
# 获取文件大小 r = os.path.getsize("test.bin") print(type(r)) # <class 'int'> print(r) # 12