繁体   English   中英

如何在Python中将.bin文件复制到文本文件

[英]How to copy a .bin file to a text file in Python

我正在尝试使用带.bin后缀的文件进行编码,然后将其发送给某人(不支持将其作为.bin发送)...问题是当我使用命令时:

with open('myfile.bin','r') as fileToCopy:

我收到一条错误消息

'charmap' codec can't decode byte 0x90 in position 192:chatacter maps to <undefined>

因此,我想到了一种解决方法,即将文件转换为.txt,然后发送。 我试图将二进制文件复制到文本文件,我使用的代码是

with open('myfile.bin','rb') as fileToCopy:
    with open('newfile.txt,'w') as myNewFile:
        for line in fileToCopty:
            myNewFile.write(line)

.bin文件包含以下行:

244e 504b 0100 3900 9000 0003 0100 0000
8000 0003 0200 0000 a432 0002 0000 0000
0002 0a02 0103 0000 0001 0a02 0003 0000
0001 0a02 0103 0000 0002 0a02 0003 0000

但是结果是一个包含垃圾的文件。 我也尝试将字节解码为utf-8格式,但收到以下错误消息:

'utf-8' codec can't decode byte 0xfa in position 1:invalid start bye

我用来解码为'utf-8格式的代码是:

with open('myfile.bin','rb') as fileToCopy:
    with open('newfile.txt,'w') as myNewFile:
        for line in fileToCopty:
            myNewFile.write(line.decode('utf-8'))

难道我做错了什么 ? 还有另一种方法吗?

目前尚不清楚您要做什么。 您正试图将现有文件myfile.bin复制到新文件newfile.txt或者正试图将二进制文件转换为人类可读的格式。

假设将目标文件myfile.bin复制到newfile.txt是您的目标, newfile.txt您可能会看看Python标准库中关闭的模块。 这包含高级文件操作,例如copymovedelete等。

如果您的目标是将文件的内容解码为人类可读的格式,而关于文件的唯一信息是其.bin结尾,则可能有问题。 二进制文件可以编码任何信息,例如图像,文本或视频。 在不知道编码类型的情况下,内容或多或少对您毫无用处。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM