我需要从文件中读取一个字节,然后用0x71读取它并将其写回另一个文件.但是,当我使用以下内容时,它只是将字节作为字符串读取,因此xoring会产生问题.
f = open('a.out', 'r')
f.read(1)
Run Code Online (Sandbox Code Playgroud)
所以我最后在C中做了同样的事情.
#include <stdio.h>
int main() {
char buffer[1] = {0};
FILE *fp = fopen("blah", "rb");
FILE *gp = fopen("a.out", "wb");
if(fp==NULL) printf("ERROR OPENING FILE\n");
int rc;
while((rc = fgetc(fp))!=EOF) {
printf("%x", rc ^ 0x71);
fputc(rc ^ 0x71, gp);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
有人能告诉我如何将我使用的字符串转换f.read()为十六进制值,以便我可以将其与0x71进行xor并随后将其写入文件?
有没有一种简单的方法,在Python中,将文件的十六进制数据读入列表,比如说hex?
那hex就是这样的:
hex = ['AA','CD','FF','0F']
我不想读成一个字符串,然后拆分.这对于大文件来说是内存密集型的.
我试图用Python读取JPG图像.
到目前为止,我有:
f = open("test.jpg")
ima = f.read(16)
print "'%s'"% (ima)
Run Code Online (Sandbox Code Playgroud)
它读取16个字节并在控制台中显示字符串,但看起来我不能显示超过32个字节.为什么?
当它尝试读取32个或更多字节时,输出将与读取16个字节时的输出相同.为什么我不能读取超过16个字节的jpeg图像?
我有一个包含8位复数样本的二进制数据文件 - 即从MSB到LSB的虚数和实数(Q和I)分量的4位和4位.
如何将这些数据转换为numpy复数数组?
我正在尝试将数据集加载到 Pandas 中,但似乎无法通过第 1 步。我是新手,所以如果这很明显,请原谅,我已经搜索了以前的主题,但没有找到答案。数据大多是汉字,这可能是问题所在。
.csv 非常大,可以在这里找到:http : //weiboscope.jmsc.hku.hk/datazip/ 我在第 1 周尝试。
在下面的代码中,我确定了我尝试的 3 种解码类型,包括尝试查看使用的编码
import pandas
import chardet
import os
#this is what I tried to start
data = pandas.read_csv('week1.csv', encoding="utf-8")
#spits out error: UnicodeDecodeError: 'utf-8' codec can't decode byte 0x9a in position 69: invalid start byte
#Code to check encoding -- this spits out ascii
bytes = min(32, os.path.getsize('week1.csv'))
raw = open('week1.csv', 'rb').read(bytes)
chardet.detect(raw)
#so i tried this! it also fails, which isn't that surprising since i …Run Code Online (Sandbox Code Playgroud) 我从RealFlow 4导出了一个.bin文件,现在需要能够在Python中读取它,以创建导入程序。这些文件如何工作?