在Windows中用Python写文件和回车符
我正在使用OpenCV的Python库来提取描述符,并将它们写入文件。每个描述符是32个字节,而我只保存80个描述符。这意味着,最终的文件应该正好是2560个字节。但实际上,它的大小是2571个字节。
我还有另一个文件,是用同样的Python脚本写的(不是在Windows上,而是我猜是在Linux上),它的大小正好是2560个字节。
我使用WinMerge比较这两个文件,结果给我提示说两个文件的换行符不同,并问我是否想把它们视为相同。如果我选择“是”,那么两个文件就被认为是相同的;如果我选择“否”,那么它们就被认为是不同的。
我在想,是否有办法在Python中写出在Windows和Linux上都能产生相同结果的二进制文件呢?
这里是脚本的相关部分:
f = open("something", "w+")
f.write(descriptors)
f.close()
1 个回答
1
是的,有一种方法可以以二进制模式打开文件——只需要在open
里加上一个b字母。
f = open("something", "wb+")
如果你在Windows系统上不这样做,每当遇到换行符'\n'
时,它会被转换成Windows使用的两个字符的换行符,'\r\n'
。