Python处理二进制文件是危险的吗?

Rob*_*ean 8 python binaryfiles file

我在Python教程上阅读了这篇文章:(http://docs.python.org/2/tutorial/inputoutput.html#reading-and-writing-files)

Windows上的Python区分了文本和二进制文件; 读取或写入数据时,文本文件中的行尾字符会自动稍微改变.这种对文件数据的幕后修改适用于ASCII文本文件,但它会破坏像JPEG或EXE文件中的二进制数据.在读取和写入此类文件时要非常小心地使用二进制模式.

我不太明白文本文件中的行尾字符是如何被"改变"将"破坏二进制数据".因为我觉得二进制数据没有像行尾这样的东西.

有人可以为我解释这段话的更多内容吗?这让我觉得Python不欢迎二进制文件.

Ant*_*hon 15

您只需要小心打开Windows上的文件作为二进制(open(filename, "rb"))而不是文本文件.之后,使用数据没有问题.

特别是Windows上的终端是'\r\n'.如果您将二进制文件作为文本文件读取并将其写回,则单个'\n''\r\n'顺序进行转换.如果您将文件打开为二进制文件(用于读取和写入),则不存在此类问题.

Python能够处理二进制数据,你必须采用Windows系统上的任何语言,而不仅仅是Python(但Python的开发人员足够友好,可以警告你可能的操作系统问题).在Linux这样的系统中,行尾是单个字符,这种区别也存在,但在将二进制数据作为文本读取/写入时不太可能导致问题(即没有b打开文件的选项).