欢迎访问宙启技术站
智能推送

Python中使用QByteArray()实现二进制文件的读写操作

发布时间:2023-12-16 16:12:43

在Python中,可以使用QtCore模块中的QByteArray()类来进行二进制文件的读写操作。QByteArray()是一个字节数组类,可以用来存储二进制数据。下面是一个使用QByteArray()进行二进制文件读写操作的例子。

from PyQt5.QtCore import QByteArray

# 写入二进制文件
def write_binary_file(file_path, data):
    ba = QByteArray(data)
    with open(file_path, 'wb') as file:
        file.write(ba)
    print('二进制文件写入完成')

# 读取二进制文件
def read_binary_file(file_path):
    with open(file_path, 'rb') as file:
        data = file.read()
    ba = QByteArray(data)
    return ba

if __name__ == '__main__':
    # 写入二进制文件
    write_binary_file('test.bin', bytes([0x01, 0x02, 0x03, 0x04, 0x05]))

    # 读取二进制文件并打印数据
    ba = read_binary_file('test.bin')
    print('读取的二进制文件数据:', [hex(b) for b in ba.data()])

在上面的例子中,我们定义了两个函数write_binary_file()read_binary_file()来分别实现二进制文件的写入和读取。

write_binary_file()函数中,我们首先使用QByteArray()类将传入的二进制数据data转换成一个字节数组对象ba。然后使用Python内置的open()函数以二进制写入模式打开文件,并调用write()方法将字节数组对象ba写入文件。

read_binary_file()函数中,我们首先使用open()函数以二进制读取模式打开文件,并调用read()方法读取文件内容到变量data中。然后再次使用QByteArray()类将读取的二进制数据转换成字节数组对象ba,并返回该对象。

在主程序中,我们首先调用write_binary_file()函数来写入一个二进制文件test.bin,其中使用了一个字节数组bytes([0x01, 0x02, 0x03, 0x04, 0x05])作为数据的示例。

然后我们调用read_binary_file()函数来读取刚刚写入的二进制文件,并将读取的数据打印出来。其中使用了ba.data()方法获取字节数组对象中的数据,并使用列表推导式将每个字节转换成16进制形式的字符串。

以上就是使用QByteArray()实现二进制文件的读写操作的一个简单例子。通过这个例子,你可以学习到如何使用QByteArray()类来处理二进制数据的读写操作。