标签: binaryfiles

将字符串中的二进制数据写入二进制文件

我有一个通过使用requests.get()存储在字符串中获得的 torrent 文件,并像这样获得:

import requests
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
'Accept-Charset': 'utf-8',
'Connection': 'keep-alive'}
request = requests.get(url, headers=headers)
data = requests.text
Run Code Online (Sandbox Code Playgroud)

我想将其写入二进制文件,以便其中的数据正确且有效:

with open(name, "wb") as f:
    f.write(data)
Run Code Online (Sandbox Code Playgroud)

然而,我似乎无法将字符串写为纯二进制数据,因为 python 不断尝试将其解释为 Unicode,并且出现如下错误:"UnicodeEncodeError: 'ascii' codec can't encode characters in position 3-9: ordinal not in range (128)

我尝试使用 bytearray 但出现了类似的问题:TypeError: unicode argument without an encoding

有没有办法将字符串中的字节按原样写入文件?

python unicode binaryfiles python-2.7 python-requests

0
推荐指数
1
解决办法
3315
查看次数

ifstream 运算符 >> 和 get() 方法有什么区别?

最近,我在读取二进制文件时使用了该>>运算符,但在某些情况下它只会跳过一个字节。查找代码中的错误位置给我带来了很多问题,但最终我设法用该get()方法修复了这个问题,但我仍然不知道为什么>>时不时地跳过字节。

目标是将文件中的第一个字节加载到m_Value,即uint8_t

代码>>

bool CByte :: load ( ifstream & fin)
{
    if(! ( fin >> m_Value ) ) return false;
    return true;
} 
Run Code Online (Sandbox Code Playgroud)

代码get()

bool CByte :: load ( ifstream & fin)
{
    char c = 0;
    if(! ( fin . get ( c ) ) ) return false;
    m_Value = static_cast <uint8_t> (c);
    return true;
}
Run Code Online (Sandbox Code Playgroud)

c++ fstream binaryfiles ifstream

0
推荐指数
1
解决办法
281
查看次数

使用 C 中的 fwrite() 将二进制文件写入文件

我正在尝试将 4 个unsigned short int以十六进制表示的数字写入二进制文件。

除了我正在写的数字之外,我还不断收到很多垃圾,我不知道为什么。我假设在从unsigned short int二进制文件的转换过程中,有垃圾被写入我的文件中。

我写入二进制文件的函数是:

int write_file  (char* name, unsigned short int array[x] ){

    FILE *fptr;
    fptr = fopen(name, "wb");
    if(fptr==NULL)
    {
        fclose(fptr);
        return (0);
    }
    unsigned short int code = 0xABCD;
    const void *ptr = &code;
    fwrite(ptr, sizeof(ptr), 1, fptr);

    unsigned short int code2 = 0x0000;
    const void *ptr2 = &code2;
    fwrite(ptr2, sizeof(ptr2), 1, fptr);

    unsigned short int code3 = 0x0001;
    const void *ptr3 = &code3;
    fwrite(ptr3, sizeof(ptr3), 1, fptr);

    unsigned …
Run Code Online (Sandbox Code Playgroud)

c binary binaryfiles

0
推荐指数
1
解决办法
1333
查看次数

使用 ifstream 从二进制文件一次读取 4 个字节

我有一个包含浮点数的二进制文件,因此每 4 个字节都是一个浮点数。我不确定如何以每四个字节存储为浮点数的方式读取,这样我就可以用它做任何我需要的事情。

这是我的代码:

int main()
{
    float i;
    std::ifstream inFile("bin_file", std::ios::binary);
    while (inFile >> i)
    {
        std::cout << i;
    }
    inFile.close();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它甚至不会进入 while 循环,除非我将 i 定义为字符。我猜这是因为它每次读取 1 个字节并且无法将其存储为浮点数。顺便说一句,我已经检查过并且文件打开了。

谢谢!

c++ binaryfiles filereader

0
推荐指数
1
解决办法
4328
查看次数

如何将大型机二进制文件转换为可读形式

我们通过XCOM接收二进制格式的 EBCDIC 大型机文件。目前,有一个基于 C 的遗留应用程序正在将其转换为可读的 ASCII 格式。该文件现在如下所示:

在此输入图像描述

作为迁移的一部分,我们必须迁移 Java 上的遗留应用程序。您能否建议或分享一些如何将该二进制文件转换为 Java 可读格式的链接?

java binaryfiles mainframe ebcdic

0
推荐指数
1
解决办法
983
查看次数

Fortran I/O 4 字节记录

当用Fortran写入数据时,我理解在数据之前和之后写入4字节“记录”。通常我已经知道我在读什么,所以我就把它扔掉。然而,这些记录中是否包含任何信息呢?是否可以从4字节记录信息中获取记录后面的数据的数据类型和计数?

io fortran binaryfiles

0
推荐指数
1
解决办法
194
查看次数

使用unlink删除文件

我想读取命令行参数中给出的文件,并在读取后删除它.这就是我正在做的事情.

char *filename = argv[1];
char *outputfile = strcat(argv[1], ".cmp");

fd = open(argv[1], O_RDONLY);
chars = read(fd, buf, BUFFERSIZE);
fd1 = creat(outputfile, 0644);
write(fd1, buf, BUFFERSIZE);
close(fd1);
close(fd);
unlink(argv[1]);
Run Code Online (Sandbox Code Playgroud)

如果我给"mytxt"在命令行中,代码应该创建"mytxt.cmp"文件并删除"mytxt",相反,它是删除"mytxt.cmp"保持"mytxt",因为它是.为什么会这样?如何删除命令行参数中给出的文件.

c linux binaryfiles unlink

-1
推荐指数
1
解决办法
2226
查看次数

应该打开任何C文件作为二进制文件

我读过某个地方我们应该总是在C中打开文件作为二进制文件(即使它是一个文本文件).当时(几年前)我并不太关心它,但现在我真的需要了解是否是这种情况以及如何实现.

我一直在努力寻找这方面的信息,但我找到的最多的是它们之间的开放差异 - 甚至不是它们的结构差异.

所以我想我的问题是:为什么我们总是打开文件作为二进制文件,即使我们之前猜测它是一个文本文件?第二个问题在于每个文件本身的结构,是一个像"加密"文本文件的二进制文件?

c memory binaryfiles file

-1
推荐指数
1
解决办法
61
查看次数

C#中的二进制文件

我正在用C#编写一个项目我希望在二进制文件中保存一个类,然后在C中读取该文件我想知道如何在没有序列化和反序列化的情况下执行此操作请帮助我

c# binaryfiles

-2
推荐指数
1
解决办法
484
查看次数

如何在C ++中读取二进制文件

我想编写一个打开二进制文件并使用DES对其加密的程序。

但是如何读取二进制文件?

c++ file-io binaryfiles visual-c++

-3
推荐指数
1
解决办法
8963
查看次数