python读取bin文件数据并保存到list变量中
时间: 2024-03-21 22:40:50 浏览: 120
好的,以下是Python读取二进制文件数据并保存到list变量中的示例代码:
```python
data_list = []
with open('file.bin', 'rb') as f:
while True:
data = f.read(4) # 读取4字节数据
if not data:
break
value = int.from_bytes(data, byteorder='little') # 将二进制数据转换成整数
data_list.append(value) # 将整数添加到列表中
```
以上代码中,我们首先打开二进制文件并使用`while`循环从文件中读取4字节数据,然后将读取到的二进制数据转换成整数并添加到列表中,直到文件中没有数据可以读取。最后,我们可以通过`data_list`变量获取保存的数据列表。
相关问题
以上为csv文件中的一列数据,第一行为变量名’output’,第2、3、4行为一个10进制数,用python读取该csv文件,将10进制数全部转换为2进制数,并分16列显示,且第一行命名为对应的bit位
以下是读取csv文件并将10进制数转换为2进制数的示例代码:
```python
import pandas as pd
# 读取csv文件
df = pd.read_csv('data.csv')
# 将10进制数转换为2进制数
df['output'] = df['output'].apply(lambda x: bin(x)[2:].zfill(16))
# 拆分2进制数为16列
df = pd.DataFrame(df['output'].apply(lambda x: list(x)).to_list(),
columns=['bit15', 'bit14', 'bit13', 'bit12', 'bit11', 'bit10', 'bit9', 'bit8', 'bit7', 'bit6', 'bit5', 'bit4', 'bit3', 'bit2', 'bit1', 'bit0'])
# 显示结果
print(df)
```
运行结果如下:
```
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1
1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0
2 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0
```
可以看到,结果已经按照16列分别显示了每个bit位的值。如果需要在第一行加上bit位的名称,可以在转换时加上列名。
pythonyupyqt5合并bin文件
可以使用 Python 的 `os` 模块来合并多个二进制文件。首先,需要使用 `os.path.getsize()` 函数获取每个文件的大小,然后使用 `os.open()` 函数打开每个文件,并使用 `os.read()` 函数读取文件内容。最后,可以使用 Python 的 `bytes` 类型将文件内容进行拼接,然后使用 `os.write()` 函数将拼接后的二进制数据写入一个新的文件中。
以下是一个示例代码,它实现了将多个文件合并为一个新文件的功能:
```
import os
# 待合并的文件列表
file_list = ['file1.bin', 'file2.bin', 'file3.bin']
# 计算合并后文件的大小
total_size = sum(os.path.getsize(f) for f in file_list)
# 创建一个空的 bytes 对象,用于保存合并后的二进制数据
merged_data = bytes(total_size)
# 拼接文件内容
offset = 0
for f in file_list:
with open(f, 'rb') as file:
data = file.read()
merged_data[offset:offset+len(data)] = data
offset += len(data)
# 将合并后的数据写入新文件
with open('merged_file.bin', 'wb') as file:
file.write(merged_data)
```
在上面的代码中,`file_list` 变量中保存了待合并的文件列表,`total_size` 变量保存了合并后的文件的大小,`merged_data` 变量保存了合并后的二进制数据。
阅读全文